IntelliJ中不明确的检查警告“NullableProblems”

2022-09-01 08:58:36

为什么我从IntelliJ中的“NullableProblems”检查中得到警告:

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

我正在使用IntelliJ 14.1.4并使用Java 1.7进行编译

截图:

enter image description here

在参数之前添加没有帮助:@NotNull

enter image description here


答案 1

从:Comparable.compareTo

@throws NullPointerException if the specified object is null

因此,IntelliJ知道,该对象不应该是,并自动添加注释:null@NotNull

IntelliJ IDEA将仔细查看SDK和库字节码,并自动推断这些注释,以便以后可以使用它们来分析源代码,以发现您忽略null的地方。

重写的方法不包含此注释,因此它重写此行为,使参数可为 null - 针对接口的协定。Comparable

您可以通过在参数之前添加来解决此问题。@NotNull

您也可以通过按 + ,在弹出菜单中选择警告,然后在子菜单中选择来禁用此检查。AltEnterDisable inspection

查看 Web 帮助此线程,了解有关 /注释的更多信息。@NotNull@NonNull


答案 2

这可以在IntelliJ IDEA中轻松全局配置,对我个人来说是推荐的方式。如果需要,可以添加自己的注释。
javax.validation.constraints.NotNull

设置路径:
Settings > Editor > Inspections > @NotNull/@Nullable problems > Configure annotations

一些截图:enter image description here enter image description here


推荐