我们正在使用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
此问题已在JavaAnalyzer的版本4.0
中修复,仅兼容SQ LTS5.6
。参见相应的JIRA票证SONARJAVA-1179