Is there a @NonNullByDefault annotation in IDEA?
Eclipse 有 @NonNullByDefault 注释,它将所有值视为 @NonNull 除非您明确地将它们注释为 @Nullable.
IntelliJ IDEA 中是否有等效选项,还是必须始终使用 @NonNull?
- 那不是 @Nonnull 而是(JSR 305)吗? IDEA 可以使用 @NotNull,但这是一个不同的注解。
-
@fge 谢谢,我修好了。
-
顺便说一句,你会用那个注释做什么?那是用于静态源代码分析吗? IDEA 可以使用 FindBugs,它有一个插件。至于使用这些注解,我遵循 Guice 的建议:方法参数不能为空,除非用 @Nullable 进行注解。但这是政策问题...
-
@fge 我们的编码策略是使用包括 @NonNullByDefault 在内的 Eclipse 注释。所以,我的问题是是否将 IDEA 配置为模拟 Eclipse\\' null 分析。 @NonNullByDefault 似乎是棘手的部分。
-
请为 youtrack.jetbrains.com/issue/IDEA-65566 投票
Idea 版本 14 将支持 JSR 305 "@TypeQualifierDefault" 注释,它允许用户创建自定义注释,用于 package-info.java 文件中的包声明,指定该包中的所有内容(不仅是参数,还包括方法返回值、局部变量等)将被隐式注释为不允许空值。
不幸的是,这不会(当前)递归地影响子包,因此每个子包也必须有一个 package-info.java 文件,声明该子包使用注释。
详细信息和使用示例请参见此处:
http://youtrack.jetbrains.com/issue/IDEA-125281
请注意,这已在早期访问计划 (EAP) 版本中实现。
不,IDEA 目前不支持。
作为证明,请参阅 lena 的关于开放功能请求的链接,以允许 \\'NotNull\\' 作为给定类或包的默认元素行为。
也许类似的特性将成为 JSR-305 的标准,其中可能包括 @ParametersAreNonnullByDefault 注释以及相反的注释 @ParametersAreNullableByDefault。请注意,与 @NonNullByDefault 相比,这两个注释不包含返回值。因此,您仍然必须显式地注释返回值。
不过,所有这些都不会改变当前状态。 JSR-305 既没有成为标准,IDEA 也没有实现它。
- IDEA 现在支持@ParametersAreNonnullByDefault:jetbrains.com/idea/webhelp/...
-
^ 评论中的链接已损坏...这个有效(现在...):jetbrains.com/help/idea/2017.1/...