提问者:小点点

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


我们正在使用Java8和依赖注入(GUICE)。目前我们有一个关于未使用方法的假阳性声纳问题,尽管由于注入注释,此方法是通过GUICE注入器的反射调用的。

受影响的代码:

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

SQ报告违反规则squid:UnusedPrivate ateMethod

应删除未使用的“私有”方法

在这个地方说

从不使用私有方法“setTransactionalCommand dStack”

.

Eclipse环境也有对未使用方法的检查,它会正确检测到它,并且只有在我没有该方法的@Inject注释时才会发出警告。我在SonarQube中也期望如此。

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

SQ版本:5.3

Java插件版本:3.14


共1个答案

匿名用户

此问题已在JavaAnalyzer的版本4.0中修复,仅兼容SQ LTS5.6。参见相应的JIRA票证SONARJAVA-1179