检索数组列表大小时出错

时间:2010-09-20 19:55:05

标签: java arraylist

我正在创建一个应用程序,它从外部应用程序应用程序检索Integer值的arraylist。似乎此检索列表中的某些元素为空或null。当我检索列表的大小时,例如:

System.out.println("The number of elements is : "+ elements_list.size());

它只会抛出一个空指针异常。有谁知道这个问题的解决方案?提前谢谢!

7 个答案:

答案 0 :(得分:16)

您的elements_list为null,因此当您调用方法size()时,它会抛出异常。您可以通过执行以下操作来检查列表是否为空:

System.out.println("The number of elements is : " + elements_list == null ? 0 : elements_list.size());

答案 1 :(得分:7)

这意味着您收到的列表为空,它与其元素无关。

答案 2 :(得分:3)

没有抱怨list元素为null,它抱怨elements_list对象本身为null。在对它执行任何操作之前,请检查elements_list是否为非空。

答案 3 :(得分:2)

我遇到了同样的问题。

if (list==null || list.size()==0) //throws exception

列表不是null,但无法确定大小。问题是该集合是从“懒惰”开始从数据库中读取的。因此它不是完全读取的,因此.size()调用抛出'NullPointerException'。阅读整个馆藏可以解决问题。

答案 4 :(得分:1)

在该代码中出现NullPointerException的情况下,列表本身为null。无论在哪里设置elements_list,它都以空值形式出现。检查您的外部应用程序并仔细检查可能在其间操纵elements_list的任何代码。

答案 5 :(得分:1)

elements_listnull,因此您无法调用任何方法。进行测试的最佳方法是检查可空性和空白性:

if (elements_list == null) || elements_list.isEmpty()) {
    ...
} else {
    ...
}

答案 6 :(得分:0)

如果

elements_list.size()

抛出空指针异常,那么问题不在于列表中有空项。相反,您为获取列表而进行的调用返回null(即,不返回实际列表)。

我承认,当代码返回列表时,我发现返回null是令人讨厌的。大多数情况下,代码应返回列表(如果有值),异常(如果生成值时出错)或空列表(如果没有值)。