为什么我会在IntelliJ的“NullableProblems”检查中收到警告:
public class Test implements Comparable<Test> {
@Override
public int compareTo(Test o) {
return 0;
}
}
我正在使用IntelliJ 14.1.4并使用Java 1.7进行编译
截图:
在参数之前添加@NotNull
没有帮助:
答案 0 :(得分:22)
来自Comparable.compareTo
:
@throws NullPointerException if the specified object is null
所以IntelliJ知道,该对象不应该是null
并添加@NotNull
注释automatically:
IntelliJ IDEA将仔细查看SDK和库字节码,并自动推断这些注释,以便稍后可以使用它们来分析源代码,以找出忽略null的位置。
您的overriden方法不包含此批注,因此覆盖此行为使参数可为空 - 违反Comparable
接口的合约。
您可以通过在参数前添加@NotNull
来解决此问题。
您还可以通过按 Alt + Enter 禁用此检查,在弹出菜单中选择警告并在子菜单中选择Disable inspection
。 / p>
有关@NotNull
/ @NonNull
注释的详情,请查看Web Help和this thread。
答案 1 :(得分:10)
这可以在IntelliJ IDEA中轻松全局配置,对我个人来说是推荐的方式。如果您愿意,可以添加自己的注释
即Select orders.idOrd, orders.ordDate, client.name, orders.price, orders.totale
From orders
join client on client.idClient = orders.Name
设置路径:
Select o.idOrd, o.ordDate, c.name, o.price, o. totale
From orders o
join client c on c.idClient = o.Name
答案 2 :(得分:-1)
这是因为您覆盖了没有@NotNull
注释的方法。
如果覆盖方法没有webView
注释,IntelliJ IDEA会发出警告。