带有@Inject注解的Java方法: False-positive for the rule "Unused "private"methods should be removed"?

标签 java dependency-injection sonarqube

我们正在使用 Java 8 和依赖注入(inject) (GUICE)。 目前我们有一个关于未使用方法的误报 Sonar 问题,尽管由于注入(inject)注释,此方法是通过 GUICE 注入(inject)器的反射调用的。

受影响的代码:

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

SQ 报告违反规则 squid:UnusedPrivateMethod

Unused "private" methods should be removed

在这个地方说

Private method 'setTransactionalCommandStack' is never used

.

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

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

SQ版本:5.3

Java插件版本:3.14

最佳答案

此问题已在 Java 分析器 4.0 版本中修复,仅与 SQ LTS 5.6 兼容。查看相应的 JIRA 工单 SONARJAVA-1179

关于带有@Inject注解的Java方法: False-positive for the rule "Unused "private"methods should be removed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633700/

相关文章:

java - Android 中的 ZXing 集成 有没有一种方法可以在不单击返回按钮的情况下退出扫描

java - Jar 文件太大

Java TextField getText() 返回先前的字符串值

java - 将@Controller注入(inject)另一个spring bean

sonarqube - 如何使用 jacoco 获取 hybris 到 sonarqube 中单元测试的代码覆盖率

java - 保存具有一对多关系的实体

rust - 抽象引用容器(Rc、Arc、Box、...)

entity-framework - 有没有办法让 ASP.NET 5 依赖注入(inject)在没有引用的情况下解析 DbContext?

java - 多语言项目中的 Sonar 错误 : File can't be indexed twice

gradle - 如何关闭 Sonar 分析仪却仍然获得覆盖率报告?