我在java中看到一些方法声明为:
void foo(@Nullable Object obj)
{ ... }这里的@Nullable是什么意思?这是否意味着输入可以是null
如果没有注释,输入仍然可以是空的,所以我猜这还不止于此?
发布于 2012-12-29 05:57:22
它清楚地表明该方法接受空值,并且如果覆盖该方法,也应该接受空值。
它也可以作为像FindBugs这样的代码分析器的一个提示。例如,如果这样的方法在没有先检查null的情况下取消对其参数的引用,FindBugs将发出警告。
发布于 2012-12-29 05:57:47
此注释通常用于消除NullPointerExceptions。@Nullable说这个参数可能是null。这种行为的一个很好的例子可以在Google Guice中找到。在这个轻量级的依赖注入框架中,你可以知道这个依赖可能是null。如果您试图传递不带注释的null,框架将拒绝执行它的工作。
更重要的是,@Nullable可以与@NotNull注解一起使用。在这里你可以find一些关于如何正确使用它们的提示。IntelliJ中的代码检查检查注释并帮助调试代码。
发布于 2012-12-29 06:32:45
不同的工具可能对@Nullable的含义有不同的解释。例如,Checker Framework和FindBugs处理@Nullable differently。
https://stackoverflow.com/questions/14076296
复制相似问题