相关疑难解决方法(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万
查看次数

Android Studio错误的含义:未注释的参数会覆盖@NonNull参数

我正在尝试使用Android Studio.在创建一个新项目并向onSaveInstanceStatecreate MyActivity类添加一个默认方法时,当我尝试将代码提交给Git时,我得到一个我不明白的奇怪错误.代码是这样的:

我得到的错误是这样的:

在此输入图像描述

如果我尝试将方法签名更改为protected void onSaveInstanceState(@NotNull Bundle outState),则IDE会告诉我它无法解析符号NotNull.

我需要做些什么才能摆脱警告?

java compiler-construction android annotations android-studio

101
推荐指数
3
解决办法
4万
查看次数

IntelliJ建议错误的@NotNull注释

IntelliJ建议com.sun.istack.internal.NotNull在以下程序中导入@NotNull注释(这是错误的):

public class Test implements Comparable<Test> {
    @Override
    public int compareTo(@NotNull Test o) {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试正确导入时com.intellij.annotations.NotNull(我认为)它看起来无法找到类:

在此输入图像描述

java intellij-idea code-inspection

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