相关疑难解决方法(0)

我应该使用哪个@NotNull Java注释?

我希望使我的代码更具可读性,并使用IDE代码检查和/或静态代码分析(FindBugs和Sonar)等工具来避免NullPointerExceptions.许多工具似乎与彼此的@NotNull/ @NonNull/ @Nonnull注释不兼容,并列出我的代码中的所有这些工具都很难阅读.有什么建议是"最好的"吗?这是我发现的等效注释列表:

  • javax.validation.constraints.NotNull
    创建用于运行时验证,而不是静态分析.
    文件

  • edu.umd.cs.findbugs.annotations.NonNull
    Findbugs静态分析使用,因此Sonar(现为Sonarqube)
    文档

  • javax.annotation.Nonnull
    这可能也适用于Findbugs,但JSR-305处于非活动状态.(另请参阅:JSR 305的状态是什么?) 来源

  • org.jetbrains.annotations.NotNull
    由IntelliJ IDEA IDE用于静态分析.
    文件

  • lombok.NonNull
    用于控制Project Lombok中的代码生成.
    占位符注释,因为没有标准.
    来源, 文档

  • android.support.annotation.NonNull
    Android中提供的标记注释,由support-annotations包
    文档提供

  • org.eclipse.jdt.annotation.NonNull
    Eclipse用于静态代码分析
    文档

java ide null annotations nullpointerexception

918
推荐指数
20
解决办法
27万
查看次数

在javax.annotation中找不到@Nullable.*

我想用@Nullable 注释来消除NullPointerExceptions.我在网上找到了一些教程,我注意到这个注释来自包javax.annotation.Nullable; 但是当我导入它时会产生编译错误:无法找到符号

java annotations nullable nullpointerexception null-pointer

102
推荐指数
6
解决办法
10万
查看次数

JSR-305注释替代Java 9

到目前为止,我们一直在使用Findbugs JSR-305注释(com.google.code.findbugs:jsr305),包括工具支持(Sonar,Eclipse,Findbugs,...)在内的一切工作正常.

但是我们的理解是Java 9中的Jigsaw将打破JSR-305注释(不允许在两个模块中使用一个包).这在JavaOne 2015上得到了证实.Oracle的推理是JSR-305从未发生过,JSR-250必须支持这些注释.

我们正在寻找可以在Java 8和Java 9中工作的JSR-305注释的替换.如果历史是任何指南,Java 9 GA和Java 8 EOL之间的时间将相当短,我们想修复我们的任何不兼容性提前编码.从理论上讲,我们可以升级JDK的注释模块,但是在我们的工具链中执行此操作似乎需要做很多工作.

annotations static-analysis jsr305 java-platform-module-system java-9

25
推荐指数
1
解决办法
3643
查看次数

JSR305与JSR308(Java类型Anotations) - 哪个将成为标准?

似乎有两种不同的JSR用于注释.

JSR-305:软件缺陷检测的注释 (附加资源)
JSR-308:Java类型的注释 (附加资源)

两者似乎都面向静态代码分析.

你知道吗:

  • 哪两个都将在Java SE 7或Java EE 6中?
  • 每个JSR的"稳定"程度如何?
  • 那个人是否取代(或过时)另一个人?

java jsr305 java-7

18
推荐指数
2
解决办法
7095
查看次数

使用javax.annotation.Nonnull:要从中获取哪个Java jar依赖项?

在我们的开放源代码约束求解器(OptaPlanner)中,我也想使用@NonNull它使Kotlin更友好并且更清楚地从Java使用。

spring-core已经使用了@NonNull例如在此代码中。它们有效地声明了每个方法参数是否可空,如此处所述

我应该使用哪个Maven / Gradle依赖项将类包含javax.annotation.Nonnull在类路径中?春天的家伙们使用哪一个?例如,我在其依赖项列表中没有发现findbugs JSR-305 jar 。

(并且我可以将其作为可选依赖项来避免膨胀用户的类路径吗?)

java spring kotlin

5
推荐指数
1
解决办法
6275
查看次数