java - IntelliJ 中的检查警告 "NullableProblems"不明确

标签 java intellij-idea code-inspection

为什么我会从 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

最佳答案

来自Comparable.compareTo:

@throws NullPointerException if the specified object is null

所以 IntelliJ 知道,该对象不应该是 null 并添加 @NotNull 注释 automatically :

IntelliJ IDEA will look carefully at SDK and libraries bytecode and will infer these annotations automatically so that they can later be used to analyze source code to spot places where you overlooked null.

您的覆盖方法不包含此注释,因此它覆盖此行为使参数可为空 - 违反 Comparable 接口(interface)的约定。

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

您也可以通过按 Alt + Enter 来禁用此检查,在弹出菜单中选择警告并在子菜单中选择 Disable Inspection -菜单。

查看 Web Helpthis thread有关 @NotNull/@NonNull 注释的更多信息。

关于java - IntelliJ 中的检查警告 "NullableProblems"不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31242459/

相关文章:

java - 为什么我的输出顺序看似随机( ActionScript 3.0)?

java - GUI 之外的新线程

java - IntelliJ Plugin - 如何自动生成代码片段 [Java]

.net - 带有 dotnet 代码检查的 Github 操作

java - 如果我想在新线程中执行某些操作,为什么必须将最终对象发送到参数列表?

java - 客户端/服务器 - 如何将协议(protocol)与网络逻辑分开?

xslt - 在 intelliJ 中对具有其他扩展名的文件(例如 DITA、HTML)执行 XSLT 转换

java - 找不到 Tomcat 7 404 intelliJ 资源

javascript - PhpStorm HTML 检查问题

python - PyCharm Community 2017.2 中 undefined variable 没有警告