IDEA中是否有@NonNullByDefault注释?

Phi*_*ßen 8 java null static-analysis intellij-idea

Eclipse具有@NonNullByDefault注释,它将所有值视为@NonNull除非您明确地将它们注释为@Nullable.

IntelliJ IDEA中是否有等效选项,或者您是否必须始终使用@Nonnull

Som*_*Guy 7

Idea版本14将包括对JSR 305"@TypeQualifierDefault"注释的支持,该注释允许用户创建自定义注释,以用于package-info.java文件中的包声明,该文件指定该包中的所有内容(不仅仅是参数,而且方法返回值,局部变量等)将被隐式注释为不允许空值.

不幸的是,这不会(当前)递归地影响子包,因此每个子包也必须有一个package-info.java文件,声明该子包使用注释.

有关详细信息和使用示例,请参见此处:

http://youtrack.jetbrains.com/issue/IDEA-125281

请注意,这已在早期访问程序(EAP)版本中实现.


Phi*_*ßen 3

不,IDEA 目前不支持。

作为证明,请参阅 lena 关于开放功能请求的链接,以允许“NotNull”作为给定类或包的默认元素行为

也许类似的功能将成为JSR-305的标准,其中可能包括@ParametersAreNonnullByDefault注释和相反的注释@ParametersAreNullableByDefault。请注意,与 相比@NonNullByDefault,返回值不包含在这两个注释中。因此,您仍然必须显式注释返回值。

不过,所有这些都不会改变当前的状态。JSR-305 还没有成为标准,IDEA 也没有实现它。

  • IDEA 现在支持 @ParametersAreNonnullByDefault:http://www.jetbrains.com/idea/webhelp/@parametersarenonnullbydefault-annotation.html (5认同)