为什么要同时使用 CheckForNull 和 NotNull?
Why is used CheckForNull and NotNull at the same time?
我看到了这段代码。我想知道为什么同时使用这两个注释? 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静态代码分析工具使用
edu.umd.cs.findbugs.annotations.Nonnull
edu.umd.cs.findbugs.annotations.CheckForNull
看起来有点奇怪
我怀疑这只是一个错误;例如
- 是大意,
- 它是从静态检查切换到动态检查的神器,反之亦然,没有完全完成工作,
- 这是不假思索地接受IDE建议的更正(导入)的结果,或者
- 有人不明白注释的真正含义。
如果你真的想知道,那么"deep dive"版本控制历史and/or问作者。
我看到了这段代码。我想知道为什么同时使用这两个注释? 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静态代码分析工具使用
edu.umd.cs.findbugs.annotations.Nonnull
edu.umd.cs.findbugs.annotations.CheckForNull
看起来有点奇怪
我怀疑这只是一个错误;例如
- 是大意,
- 它是从静态检查切换到动态检查的神器,反之亦然,没有完全完成工作,
- 这是不假思索地接受IDE建议的更正(导入)的结果,或者
- 有人不明白注释的真正含义。
如果你真的想知道,那么"deep dive"版本控制历史and/or问作者。