我编写了一个实现comparable接口的类。我在方法参数中使用了@NotNull注释来抑制警告,但仍然显示一个警告。IDE自动导入了com.sun.istack.internal.NotNull包以用于@NotNull。为什么会发生这种情况?如果不使用此注释,如何消除此警告?
我正在使用Java 8 SE的Inteij Ultimate。
以下是我的代码片段。
显然,你应该使用
public int compareTo(@NonNull Node node) {
public int compareTo(@NotNull Node node) {
NullPointerException
。这些注释需要安装Checker Framework或者您可以尝试其他答案所说的方法。来自此处。Nonnull
这个东西不存在。我也尝试导入javax.annotation.
包,但是没有像Nonnull
或NotNull
这样的注解。我的jdk版本有问题吗?我目前正在使用的是java版本“1.8.0_45”。 - sealcom.intellij.annotations.NotNull
、javax.annotation.Nonnull
或javax.validation.constraints.NotNull
。@override
,因为这会向一个在超类中没有该注解的参数添加注解。javax.annotation
包中没有 @NotNull
或 @Nonnull
注解。我已根据您提供的链接更改了配置,但我的 IDE 仍然无法在该包中找到这些注解。 - sealManagedBean
之外,我有这些注释:http://grepcode.com/snapshot/repo1.maven.org/maven2/org.glassfish/javax.annotation/3.1 - seal
compareTo
方法添加 @Nonnull (javax.annotation.Nonnull)。 - Olivier Poulinjavax.annotation.NonNull
是正确的选择。 - uraimojavax.annotation
包中找不到任何类似于NotNull
或Nonnull
的注解。当我尝试写下javax.annotation.NotNull
或javax.annotation.Nonnull
时,会出现错误。 - seal