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

问题描述

在最近的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 文件。