【问题标题】:Why does a non-empty List throw a Null Pointer Exception?为什么非空列表会抛出空指针异常?
【发布时间】:2015-09-19 04:53:05
【问题描述】:

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

List<HistoryDetails> details

其中 HistoryDe​​tails 是一个包含字符串的对象。

当我检查尺寸时,它给了我一个正值。

details.size()

但是当我尝试访问一个元素时,它会抛出一个空指针异常。

details.get(0).getFirstElement();


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

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

【问题讨论】:

    标签: java android list listview arraylist


    【解决方案1】:

    具有许多项的列表details 可以使第一项为空对象。在使用该项目之前检查 null。

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

    【讨论】:

      【解决方案2】:

      看起来detailsList,但List 的第一个元素为空。也就是说,它看起来像details.get(0) == null

      【讨论】:

        【解决方案3】:

        因为它包含 null。

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

        【讨论】:

          【解决方案4】:

          这样可以避免空指针异常:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-04-09
            • 1970-01-01
            • 1970-01-01
            • 2020-11-22
            相关资源
            最近更新 更多