我有一个部分填充对象的数组,当我遍历这些对象时,我试图在对其执行其他操作前检查所选对象是否为 "空"。然而,即使检查对象是否为 "空",似乎也会引发 "NullPointerException"。array.length "也会包含所有 "空 "元素。如何检查数组中的 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] 的长度?