在 Intellij IDEA 中实现方法时 org.jetbrains.annotations.NotNull 而不是 javax.annotation.Nonnull

org.jetbrains.annotations.NotNull instead of javax.annotation.Nonnull when implement method in Intellij IDEA

在最近的 JetBrains Intellij IDEA 更新之后,我发现当我尝试实现用 javax.annotation.Nonnull 注释的方法时 - IDE 改为用 org.jetbrains.annotations.NotNull 实现它.

示例:

如果你有接口:

import javax.annotation.Nonnull;

interface User {

    @Nonnull
    String getName();
}

它将被实施为:

import org.jetbrains.annotations.NotNull;

class Customer implements User {

    @NotNull
    @Override
    public String getName() {
        return null;
    } 
}

问题是如何配置IDE来实现带有严格验证注解的方法?

看起来像是一个缺陷 (https://youtrack.jetbrains.com/issue/IDEA-253324),尽管存在解决方法: Inspections > Java > Probable bugs > Nullability problems > @NotNull/@Nullable problems > Configure Annotations。将 javax.annotation.Nullable/javax.annotation.Nonnull 设置为默认值并重新启动 IDE。

要将带注释的库添加到 Gradle 项目,请将实现 org.jetbrains:annotations:16.0.2 依赖项添加到 build.gradle 文件。