IntelliJ 建议错误的@NotNull 注解

IntelliJ suggests wrong @NotNull annotation

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

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

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

从代码中删除导入。 IntelliJ 会要求您再次导入它。它应该表明有多种选择。您需要的注释应该在列表中。

您可以在添加注释之前在警告上按 Alt+Enter,按右键,选择“编辑检查设置”,然后选择“配置注释”并指定要插入的注释。

我发现我必须在我的 Java 项目的 build.gradle 文件中添加以下依赖声明,然后才能导入 org.jetbrains.annotations.NotNullorg.jetbrains.annotations.Nullable 注释而不是com.sun.istack.internal.NotNullcom.sun.istack.internal.Nullable 注释:

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.jetbrains:annotations:15.0'
}

对于更高版本的 Intellij,使用 Cmd+Shift+A(在 MacOS 上)调出 Find Actions 菜单,然后键入 Configure annotations、select 调出建议Compiler 偏好 window.

然后单击 Add runtime assertions for notnull-annotated methods and parameters 选项旁边的 Configure annotations 按钮。然后它将显示 NonNull 和 Nullable 配置默认值列表。 Select 您想要的默认设置,然后使用选中按钮将其设置为默认设置。