为什么我的编译器在它不应该出现时会出现NullPointerException?

时间:2016-05-05 17:50:36

标签: java android oop methods nullpointerexception

我在方法之外创建了一个FloatingActionButton对象,但没有给它任何值。在方法fabInitializer中,我通过引用它来为XML文件中的标记赋值。 当我想使用我创建的类对象的方法时,Android Studio会说:

  

object.method()可能会产生java空指针异常。

程序运行正常。

如果对象值为null,则应生成该消息,但事实并非如此。我该如何解决这个问题?

public void fabInitializer() {
    mFab = (FloatingActionButton) findViewById(R.id.fab);
    mFab.setOnClickListener(this);

}

1 个答案:

答案 0 :(得分:2)

这只是一个警告。 Android Studio无法断定mFab不为空(因为它可以是various reasons)。如果您想要删除警告并更加防御性地编写代码,请添加防御性空检查:

if (mFab!=null) mFab.setOnClickListener(this);