@Nullable注释用法

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

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

@Nullable的含义是@Nullable ? 这是否意味着输入可能为null ? 没有注释,输入仍然可以为空,所以我猜这不仅仅是它?

谢谢


它明确表示该方法接受空值,并且如果重写该方法,则还应该接受空值。

它也可以作为FindBugs之类的代码分析器的提示。 例如,如果这种方法首先不检查空值而解引用其参数,则FindBugs将发出警告。


此注释通常用于消除NullPointerExceptions@Nullable经常说这个参数可能为null 。 Google Guice中可以找到这种行为的一个很好的例子。 在这个轻量级的依赖注入框架中,你告诉这个依赖关系可能为null 。 如果你试图传递null而没有注释,那么框架会拒绝执行它的工作。

还有更多@Nullable可能与@NotNull注释一起使用。 在这里你可以找到一些如何正确使用它们的技巧。 IntelliJ中的代码检查会检查注释并帮助调试代码。


不同的工具可能会以不同的方式解释@Nullable的含义。 例如,Checker Framework和FindBugs处理@Nullable不同。

链接地址: http://www.djcxy.com/p/50213.html

上一篇: @Nullable annotation usage

下一篇: Should Java 8 getters return optional type?