在我的 Eclipse Neon 工作区设置中,我检查了[x] Enable annotation-based null analysis
。现在,当我Assign statement to new variable
从快速协助中进行操作时,Eclipse 有时会添加@NonNull
到新的变量分配中。所以在第 1 行,我得到第 2 行:
Deprecated annotation = Main.class.getAnnotation(Deprecated.class); // line 1
@NonNull Deprecated annotation = Main.class.getAnnotation(Deprecated.class); // line 2
这提出了两个问题:
如何启用和禁用此行为?在同一个工作区中的第二个项目中,Eclipse 不会这样做。因此,它不仅仅依赖于在工作区设置中配置的基于注释的空值分析。
为什么 Eclipse 得出结论
annotation
是@NonNull
返回值可以清楚地是null
(通过文档):
java.lang.annotation.Annotation java.lang.Class.getAnnotation(java.lang.Class annotationClass)
如果存在这样的注释,则返回此元素的指定类型的注释,否则返回 null。