Java 为什么非空列表抛出空指针异常?

Java 为什么非空列表抛出空指针异常?,java,android,list,listview,arraylist,Java,Android,List,Listview,Arraylist,我有一个列表数组“详细信息” List<HistoryDetails> details 但是当我试图访问一个元素时,它抛出一个空指针异常 details.get(0).getFirstElement(); Attempt to invoke virtual method 'java.lang.String com.HistoryDetails.getFirstElement()' on a null object reference 我在检查大小的下一行调用元素。因此,不应重

我有一个列表数组“详细信息”

List<HistoryDetails> details
但是当我试图访问一个元素时,它抛出一个空指针异常

details.get(0).getFirstElement();


Attempt to invoke virtual method 'java.lang.String com.HistoryDetails.getFirstElement()' on a null object reference

我在检查大小的下一行调用元素。因此,不应重置任何内容。可能有什么问题?

看起来
详细信息
是一个
列表
,但是
列表
的第一个元素为空。也就是说,它看起来像
details.get(0)=null,因为它包含null

Log.d("TEST", details.get(0)); //should return null

具有多个项的列表
详细信息
可以将第一项设为空对象。在使用该项之前,请检查null

if(details.get(0)!=null){
details.get(0).getFirstElement();
}

这将避免空指针异常:

if (!details.isEmpty()) {
    details.get(0).getFirstElement();
}
if (!details.isEmpty()) {
    details.get(0).getFirstElement();
}