Java Eclipse错误/警告忽略未使用变量分析中的断言

Java Eclipse错误/警告忽略未使用变量分析中的断言,java,eclipse,static-analysis,findbugs,unused-variables,Java,Eclipse,Static Analysis,Findbugs,Unused Variables,由于Eclipse没有报告“未使用”的变量,我有“隐藏”的bug,因为它们被用于断言(前提条件),例如: public void method(final String text, ...other parameters) { assert StringUtils.isNotBlank(text); ... // The text variable is never used in the method. // If Eclipse had reported the variab

由于Eclipse没有报告“未使用”的变量,我有“隐藏”的bug,因为它们被用于断言(前提条件),例如:

public void method(final String text, ...other parameters) {
  assert StringUtils.isNotBlank(text);
  ...
  // The text variable is never used in the method.
  // If Eclipse had reported the variable as 'unused' I would have noticed that something is wrong with the code.
  ...
}
我想告诉Eclipse在检查未使用的变量时忽略断言。我怀疑有人会传递一个参数,只对它运行断言。。。
另外,请告诉我FindBugs或其他工具是否可以做到这一点。

以下是我自己尝试使用“暴力”解决方案解决此问题的尝试:

  • 编写一个脚本,复制源代码并删除所有 它的断言
  • 像检查原件一样检查该副本
  • 手动删除仅使用的变量 在原始源代码的断言中

请注意,JavaDoc链接变量也存在类似的问题。。。如果JavaDoc中提到一个变量,它将被视为已被使用(由Eclipse和其他IDE使用)。

如果您告诉编译器在字节码中省去断言,FindBugs可能能够做到这一点。然后FindBugs应该看到变量未使用。当然,除非编译器也从字节码中删除未使用的变量。(我希望如此。)Checkstyle和PMD没有“忽略断言”标志afaik。您可以在您的案例中使用@NonNull注释,以避免断言跟踪Thomas的答案。没有从字节码中删除断言的开关。方法如下:@Barett谢谢,这可能是一个不时发现这些问题的解决方案。@KonstantinZaitsev使用
@NonNull
注释不会解决这个问题,我指的是任何可能的断言,而不仅仅是
断言!=null
(isNotBlank所做的不仅仅是检查null)在Eclipse中,即使有javadocs,也有一个警告未使用参数的首选项。