【问题标题】:Why is my compiler expecting a NullPointerException when it shouldn't?为什么我的编译器不应该期望 NullPointerException?
【发布时间】:2016-08-31 15:00:18
【问题描述】:

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

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

程序运行良好。

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

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

}

【问题讨论】:

  • 嗨,请同时包含布局 XML 的代码 - 粘贴代码文本而不是图片/屏幕截图也更有帮助。
  • 正如大家所指出的,您可以忽略警告。您还可以通过单击其顶部的 ALT+ENTER 来抑制警告,它会为您提供有关如何“修复”它的选项。

标签: java android oop methods nullpointerexception


【解决方案1】:

这只是一个警告。 Android Studio 不能断定mFab 不为空(因为它可以是various reasons)。如果你想去掉警告,写代码更具防御性,添加防御性空检查:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2015-04-21
    • 2021-05-02
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多