为什么不@NotNull anotation删除警告?

时间:2015-07-02 15:33:49

标签: java annotations warnings notnull

我写了一个实现类似接口的类。我使用@NotNull注释来抑制方法参数中的waring。但它仍会显示警告.IDE会自动为com.sun.istack.internal.NotNull导入此程序包@NotNull。为什么这是在讨价还价?不使用此注释如何删除此警告?
  我正在使用带有java 8 SE的Inteij Ultimate。 这是我的代码段。enter image description here

谢谢。

2 个答案:

答案 0 :(得分:5)

显然,你应该使用

public int compareTo(@NonNull Node node) {

而不是

public int compareTo(@NotNull Node node) {

编译器可以确定代码路径可能接收空值的情况,而无需调试NullPointerException

来自here.

对于这些注释,您需要安装Checker Framework。或者您可以尝试其他答案所说的内容。

答案 1 :(得分:1)

更改导入,您可以使用intellij自己的com.intellij.annotations.NotNulljavax.annotation.Nonnulljavax.validation.constraints.NotNull

这是IntelliJ功能,实际上可以配置要使用的可空/非空注释,请参阅this guide

如果这没有解决它,并且该消息似乎暗示了这一点,请尝试删除@override,您正在为超类中没有它的参数添加注释