首页 文章

@Nullable注释用法

提问于
浏览
302

我在java中看到一些方法声明为:

void foo(@Nullable Object obj)
{ ... }

@Nullable 在这里是什么意思?这是否意味着输入可能是 null ?没有注释,输入仍然可以为空,所以我猜这不仅仅是它吗?

谢谢

3 回答

  • 16

    它清楚地表明该方法接受空值,并且如果重写该方法,则还应接受空值 .

    它还可以作为代码分析器的提示,如FindBugs . 例如,如果此方法取消引用其参数而不先检查null,则FindBugs将发出警告 .

  • 79

    此注释通常用于消除 NullPointerExceptions . @Nullable 经常说这个参数可能是 null . 这种行为的好例子可以在Google Guice中找到 . 在这个轻量级依赖注入框架中,您可以告诉该依赖关系可能是 null . 如果您尝试传递 null 并且没有注释,框架将拒绝执行它的工作 .

    更多 @Nullable 可能与 @NotNull 注释一起使用 . 在这里你可以find一些提示如何正确使用它们 . IntelliJ中的代码检查检查注释并帮助调试代码 .

  • 323

    不同的工具可能会以不同的方式解释 @Nullable 的含义 . 例如,Checker FrameworkFindBugs句柄 @Nullable differently .

相关问题