【问题标题】:Java method with @Inject annotation: False-positive for the rule "Unused "private" methods should be removed"?带有@Inject 注释的Java 方法:“应删除未使用的“私有”方法”规则的误报?
【发布时间】:2016-12-02 16:31:18
【问题描述】:

我们正在使用 Java 8 和依赖注入 (GUICE)。 目前我们有一个关于未使用方法的误报 Sonar 问题,尽管由于 Inject Annotation,此方法是通过来自 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

【问题讨论】:

    标签: java dependency-injection sonarqube


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多