如何检查数组元素是否为null以避免Java中的NullPointerException


问题内容

我有部分填充的对象数组,当我遍历它们时,我尝试检查所选对象是否null在我对其进行其他处理之前。但是,即使null通过似乎也检查过它NullPointerExceptionarray.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]的长度?