我看到了这段代码。我想知道为什么同时使用这两个注释? CheckForNull 来自代码分析工具,并检查编译时属性可以为null 。但NotNull是运行时检查,并说该属性是 NOT null?为什么他们同时被使用?他们是否相互冲突?
import javax.annotation.CheckForNull;
import javax.validation.constraints.NotNull;
@CheckForNull
@NotNull
private Info Info;
JSR-303
用于运行时 bean验证,而不是静态代码分析
javax.validation.constraints.NotNull
javax.validation.constraints.Null
FindBugs的
由Findbugs静态代码分析工具
使用edu.umd.cs.findbugs.annotations.Nonnull
edu.umd.cs.findbugs.annotations.CheckForNull
答案 0 :(得分:3)
看起来有点奇怪。
我怀疑这只是一个错误; e.g。
如果你真的想知道,那么"深潜"版本控制历史和/或询问作者。