tra*_*veh 30 java intellij-idea code-inspection
为什么我在IntelliJ的"NullableProblems"检查中收到警告:
public class Test implements Comparable<Test> {
@Override
public int compareTo(Test o) {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用IntelliJ 14.1.4并使用Java 1.7进行编译
截图:

@NotNull在参数之前添加没有帮助:

Dar*_*Kay 23
来自Comparable.compareTo:
@throws NullPointerException if the specified object is null
Run Code Online (Sandbox Code Playgroud)
所以IntelliJ知道,对象不应该是自动null添加@NotNull注释:
IntelliJ IDEA将仔细查看SDK和库字节码,并自动推断这些注释,以便以后可以使用它们来分析源代码以找到忽略null的位置.
您的override方法不包含此批注,因此它会覆盖此行为,使参数可为空 - 与Comparable接口的合约相对.
您可以通过@NotNull在参数之前添加来解决此问题.
您也可以通过按Alt+ Enter,在弹出菜单中选择警告并Disable inspection在子菜单中选择来禁用此检查.
有关/ 注释的更多信息,请查看Web帮助和此主题.@NotNull@NonNull
mag*_*ter 13
这可以在IntelliJ IDEA中轻松全局配置,对我个人来说是推荐的方式.如果您愿意,可以添加自己的注释.
即javax.validation.constraints.NotNull
设置路径:
Settings > Editor > Inspections > @NotNull/@Nullable problems > Configure annotations
| 归档时间: |
|
| 查看次数: |
11119 次 |
| 最近记录: |