Tengo un array de objetos parcialmente lleno, y cuando itero a través de ellos intento comprobar si el objeto seleccionado es null
antes de hacer otras cosas con él. Sin embargo, incluso el acto de comprobar si es null
parece a través de un NullPointerException
. Además, array.length
incluirá todos los elementos null
. ¿Cómo se comprueba si hay elementos nulos
en un array? Por ejemplo en el siguiente código se lanzará un NPE para mí.
Object[][] someArray = new Object[5][];
for (int i=0; i<=someArray.length-1; i++) {
if (someArray[i]!=null) { //do something
}
}
Te pasa más de lo que dices. He realizado la siguiente prueba ampliada a partir de tu ejemplo:
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");
}
}
}
}
y obtuvo la salida esperada:
$ /cygdrive/c/Program\ Files/Java/jdk1.6.0_03/bin/java -cp . test
not null
null
not null
null
not null
¿Estás intentando comprobar las longitudes de someArray[index]?