我正在创建一个应用程序,它从外部应用程序应用程序检索Integer值的arraylist。似乎此检索列表中的某些元素为空或null。当我检索列表的大小时,例如:
System.out.println("The number of elements is : "+ elements_list.size());
它只会抛出一个空指针异常。有谁知道这个问题的解决方案?提前谢谢!
答案 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_list
为null
,因此您无法调用任何方法。进行测试的最佳方法是检查可空性和空白性:
if (elements_list == null) || elements_list.isEmpty()) {
...
} else {
...
}
答案 6 :(得分:0)
如果
elements_list.size()
抛出空指针异常,那么问题不在于列表中有空项。相反,您为获取列表而进行的调用返回null(即,不返回实际列表)。
我承认,当代码返回列表时,我发现返回null是令人讨厌的。大多数情况下,代码应返回列表(如果有值),异常(如果生成值时出错)或空列表(如果没有值)。