带@Inject注释的Java方法:规则为假阳性"未使用"私有"方法应该删除"?

时间:2016-07-28 10:26:44

标签: java dependency-injection sonarqube

我们正在使用Java 8和依赖注入(GUICE)。 目前我们有一个假阳性的声纳问题,关于未使用的方法,虽然这个方法是通过GUICE Injector的反射调用的,因为注入注释。

受影响的代码:

 @Inject
 private void setTransactionalCommandStack(TransactionalCommandStack transactionalCommandStack) {
   ...
}

SQ报告违反规则squid:UnusedPrivateMethod

  

未使用"私人"方法应该删除

在这个地方并说

  

私有方法' setTransactionalCommandStack'永远不会使用

同时检查未使用方法的Eclipse环境会正确检测它,如果我没有该方法的@Inject批注,则只会发出警告。 我在SonarQube中也是如此。

我测试了Annotation javax.inject.Inject和com.google.inject.Inject。在这两种情况下,SonarQube都报告该方法未使用。

SQ版本:5.3

Java插件版本:3.14

1 个答案:

答案 0 :(得分:1)

此问题已在Java Analyzer的版本4.0中得到修复,仅与SQ LTS 5.6兼容。查看相应的JIRA票证SONARJAVA-1179