@Nullable注解的用法

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

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

这里的"@Nullable "是什么意思?是否意味着输入可以是 "null"?

没有注释,输入仍然可以是空的,所以我想这不仅仅是它?

对该问题的评论 (3)
解决办法

它明确指出该方法接受空值,如果你覆盖该方法,你也应该接受空值。

这也是对FindBugs等代码分析器的一个提示。例如,如果这样的方法在没有首先检查null的情况下取消了对其参数的引用,FindBugs会发出警告。

评论(1)

这个注解通常用来消除NullPointerExceptions'。@Nullable通常是说这个参数可能是空'。这种行为的好例子可以在Google Guice中找到。在这个轻量级的依赖注入框架中,你会告诉这个依赖可能是`null'。如果你试图传递 "null "并且没有注释,框架会拒绝完成它的工作。

更重要的是,@Nullable可以和@NotNull注解一起使用。这里你可以找到一些如何正确使用它们的提示。IntelliJ的代码检查会检查注解并帮助调试代码。

评论(0)

不同的工具可能会对@Nullable的含义有不同的解释。例如,Checker FrameworkFindBugs@Nullable的处理方式不同

评论(0)