问题描述
在最近的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 文件。