SonarQube假阳性鱿鱼:S1450用于@Getter(lombok)注释字段

Jos*_*rdt 7 java lombok sonarqube

我想在使用Project Lombok@Getter注释时发现了误报.

在下面的示例类中,我收到警告"私有字段仅用作方法中的局部变量应该成为局部变量"(squid:S1450).

public class Example {

    @Getter
    private String exampleField; // <-- squid:S1450

    public Example(final String value) {
        setExampleField(value);
    }

    private void setExampleField(final String exampleField) {
        this.exampleField = exampleField;
    }

}
Run Code Online (Sandbox Code Playgroud)

有人能证实吗?它是SonarQube规则中的错误,还是我的班级或我对此规则或@Getter注释的理解有问题?

只是为了完整起见:

  • 项目lombok注释或生成的方法在其他SonarQube规则中被正确识别.所以我认为我的设置很好.
  • 我也尝试将@Getter注释放在类级别上,我也得到了同样的警告.
  • 警告显示在SonarLint(在IntelliJ IDEA中)和SonarQube的Web界面中.所以我认为执行分析仪时并不是错误.
  • 我已经将IntelliJ IDEA中的SonarLint插入到我们的SonarQube服务器中,并且此远程连接正常工作.

我测试了以下版本:

  • SonarQube 6.0
  • SonarQube Java插件4.2
  • SonarLint(适用于IntelliJ IDEA)2.3.2
  • IntelliJ IDEA 2016.2.5
  • Java 8

Fre*_*eam 5

你是对的,我已经创建了以下的Jira票证https://jira.sonarsource.com/browse/SONARJAVA-1924.感谢您的反馈意见 !