我希望让我的代码更易读,并使用工具如IDE代码检查和/或静态代码分析(FindBugs和Sonar)来避免NullPointerException。许多工具似乎与彼此的@NotNull
/@NonNull
/@Nonnull
注释不兼容,在我的代码中列出所有这些注释将非常难以阅读。有哪些推荐的“最佳”注释?以下是我找到的等效注释列表:
javax.validation.constraints.NotNull
用于运行时验证,而非静态分析。
文档edu.umd.cs.findbugs.annotations.NonNull
被FindBugs(已废弃项目)及其后继者SpotBugs静态分析以及Sonar(现在是Sonarqube)使用
FindBugs文档, SpotBugs文档javax.annotation.Nonnull
这也可能与FindBugs一起使用,但JSR-305不活动。(另请参见:JSR 305的状态是什么?) 来源org.jetbrains.annotations.NotNull
由IntelliJ IDEA IDE用于静态分析。
文档lombok.NonNull
用于控制Project Lombok中代码生成。
占位符注释,因为没有标准。
来源, 文档androidx.annotation.NonNull
Android可用的标记注释,由注释包提供
文档org.eclipse.jdt.annotation.NonNull
由Eclipse用于静态代码分析
文档
com.sun.istack.internal.NotNull
。天哪... - Thomas Weller