如何检查数组元素是否为null以避免Java中的NullPointerException
问题内容:
我有部分填充的对象数组,当我遍历它们时,我尝试检查所选对象是否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]的长度?