我使用Findbugs和
javax.annotation.Nonnull方法参数.
private void myMethod(@Nonnull String str) { assert str != null ....
最新的Netbeans版本(7.3rc2)报告说,断言检查不是必需的(因为Nonnull注释).我不完全确定这是一个Netbeans的错误.
因为我指定了@Nonnull注释,可以删除断言线吗?
据我所知,注释仅在静态分析期间使用,而assert在启用时处于活动状态,所以两个不可替代.
解决方法
断言在运行时进行评估,注释在运行时可以帮助FindBugs在分析过程中捕获问题.由于这两个检查都没有真正的冲突,您可以保留这两个检查.如果我的IDE告诉我删除该断言,我会觉得很讨厌.