【问题标题】:Inspection shows null pointer exception while I'm checking null probability在我检查空概率时检查显示空指针异常
【发布时间】:2015-10-25 02:07:23
【问题描述】:

我的项目中有这样的代码:

public class MyExpAdapter extends BaseExpandableListAdapter
{

    @Override
    public int getChildrenCount(final int groupPosition)
    {
        return this.getCountry(groupPosition) == null ? 0 :
                this.getCountry(groupPosition).getCityList() == null ? 0 :
                        this.getCountry(groupPosition).getCityList().size();
    }
.
.
.
}

虽然我正在检查空概率,但检查员仍然突出显示最后两行,如下图所示。任何想法?谢谢。

更新

我什至改变了我的方法,不使用三元运算符,但它仍然很烂:(

【问题讨论】:

  • 尝试在代码中添加大括号。 Java 可能会打乱运算符的顺序。
  • getCountry 列表可能为空。
  • 在没有三元运算符的情况下会发生这种情况吗?

标签: java android android-studio nullpointerexception inspector


【解决方案1】:

抱歉,这应该是对您的问题的评论,因为我没有足够的声誉点来添加评论,所以我使用此选项。 由于我们不知道您使用的 IDE,所以很难说。

但肯定 this.getCountry(groupPosition) 应该调用一次,结果应该分配给一个局部变量,然后应该使用它来避免多次不必要的方法调用。

请同时发布 getCountry 方法的代码,因为检查可能会认为第二次它会给出不同的值。

【讨论】:

  • 谢谢,IDE 的名称已标记到问题中。我会检查你的最后一行答案,如果是这个原因,我会接受你的答案。我想你是对的,但让我仔细检查一下。 :thumbs_up
  • 我想这是一个不错的答案。作为一个额外的信息,this one 说 Android Studio 对 NPE 太敏感了,他只是忽略了它们(只有在他确定的情况下)。检查this site,他们建议我们应该避免链式方法调用(object.method1().method2().etc()),因为它们对 NPE 不友好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 2013-11-21
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多