Gua*_*sta 14 java assert findbugs null-check
我在方法参数上使用Findbugs和javax.annotation.Nonnull.
在私有方法上,我通常添加一个断言行来检查null
private void myMethod(@Nonnull String str) {
assert str != null
....
Run Code Online (Sandbox Code Playgroud)
最新的Netbeans版本(7.3rc2)报告断言检查不是必需的(因为Nonnull注释).我不完全确定这是一个Netbeans错误.
可以删除断言行,因为我指定了@Nonnull注释吗?
据我所知,注释仅在静态分析期间使用,而assert在启用时在执行期间处于活动状态,因此两个不是替代.
Netbeans是对的.如果您认为它可以为null:删除注释.如果您知道它不能:删除断言.
如果有可能使用空值调用您的方法,那么@Nonnull注释不应该存在.
就像你说的那样,该注释实际上并没有在运行时做任何事情:它仅由IDE和静态代码分析工具使用.它不能确保事物不为空.
| 归档时间: |
|
| 查看次数: |
16380 次 |
| 最近记录: |