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

Mik*_*ter 4 jetbrains-ide intellij-idea java-annotations

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

例子:

如果你有一个接口:

import javax.annotation.Nonnull;

interface User {

    @Nonnull
    String getName();
}
Run Code Online (Sandbox Code Playgroud)

它将被实施为:

import org.jetbrains.annotations.NotNull;

class Customer implements User {

    @NotNull
    @Override
    public String getName() {
        return null;
    } 
}
Run Code Online (Sandbox Code Playgroud)

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

小智 8

看起来像一个缺陷 ( https://youtrack.jetbrains.com/issue/IDEA-253324 ),尽管存在一种解决方法: 检查 > Java > 可能的错误 > 可空性问题 > @NotNull/@Nullable 问题 > 配置注释。设置javax.annotation.Nullable/javax.annotation.Nonnull为默认值并重新启动 IDE。