У меня есть частично заполненный массив объектов, и при итерации по ним я попытался проверить, является ли выбранный объект null
, прежде чем делать с ним другие действия. Однако даже проверка того, является ли он null
, приводит к возникновению NullPointerException
. В array.length
будут включены все null
элементы. Как можно проверить наличие null
элементов в массиве? Например, в следующем коде у меня возникает ошибка NPE.
Object[][] someArray = new Object[5][];
for (int i=0; i<=someArray.length-1; i++) {
if (someArray[i]!=null) { //do something
}
}
У вас происходит больше, чем вы сказали. Я выполнил следующий расширенный тест из вашего примера:
public class test {
public static void main(String[] args) {
Object[][] someArray = new Object[5][];
someArray[0] = new Object[10];
someArray[1] = null;
someArray[2] = new Object[1];
someArray[3] = null;
someArray[4] = new Object[5];
for (int i=0; i<=someArray.length-1; i++) {
if (someArray[i] != null) {
System.out.println("not null");
} else {
System.out.println("null");
}
}
}
}
и получил ожидаемый результат:
$ /cygdrive/c/Program\ Files/Java/jdk1.6.0_03/bin/java -cp . test
not null
null
not null
null
not null
Возможно, вы пытаетесь проверить длину someArray[index]?
Приведенный код работает у меня. Обратите внимание, что someArray[i] всегда null, так как вы не инициализировали второе измерение массива.
Ну, во-первых, этот код не компилируется.
После удаления лишней точки с запятой после i++ он компилируется и работает нормально.