我写了一个实现类似接口的类。我使用@NotNull
注释来抑制方法参数中的waring。但它仍会显示警告.IDE会自动为com.sun.istack.internal.NotNull
导入此程序包@NotNull
。为什么这是在讨价还价?不使用此注释如何删除此警告?
我正在使用带有java 8 SE的Inteij Ultimate。
这是我的代码段。
谢谢。
答案 0 :(得分:5)
显然,你应该使用
public int compareTo(@NonNull Node node) {
而不是
public int compareTo(@NotNull Node node) {
编译器可以确定代码路径可能接收空值的情况,而无需调试NullPointerException
。
来自here.
对于这些注释,您需要安装Checker Framework。或者您可以尝试其他答案所说的内容。
答案 1 :(得分:1)
更改导入,您可以使用intellij自己的com.intellij.annotations.NotNull
,javax.annotation.Nonnull
或javax.validation.constraints.NotNull
。
这是IntelliJ功能,实际上可以配置要使用的可空/非空注释,请参阅this guide。
如果这没有解决它,并且该消息似乎暗示了这一点,请尝试删除@override
,您正在为超类中没有它的参数添加注释