Java 声纳“奇异场”规则与龙目格特定律相矛盾

Java 声纳“奇异场”规则与龙目格特定律相矛盾,java,annotations,sonarqube,checkstyle,lombok,Java,Annotations,Sonarqube,Checkstyle,Lombok,我和sonar和lombok一起工作,他们似乎不是朋友 @Getter public class MyAwesomeClass { private String string1; private String string2; private String string3; ... } 由于@getter注释,上面的示例为类中的每个字段生成了一个getter方法,但sonar警告我,这些字段是单数字段,仅在一个方法中使用,但由于生成的getter方法,情况并非如

我和sonar和lombok一起工作,他们似乎不是朋友

@Getter
public class MyAwesomeClass {
    private String string1;
    private String string2;
    private String string3;
    ...
}
由于@getter注释,上面的示例为类中的每个字段生成了一个getter方法,但sonar警告我,这些字段是单数字段,仅在一个方法中使用,但由于生成的getter方法,情况并非如此


很明显,声纳并没有考虑龙目山。我的问题是,是否有可能使这些警告消失,例如使用@SuppressWarnings注释?

即使我真的不会因为代码分析工具而使代码混乱,我也希望您可以使用注释。您的代码如下所示:

@Getter
public class MyAwesomeClass {
    private String string1; // NOSONAR
    private String string2; // NOSONAR
    private String string3; // NOSONAR
}
在我看来不是很优雅,但它实际上是声纳功能。然后应忽略这些行的分析

另一个可能更好的解决方案是禁用特定规则。我想这个问题的首要答案可以帮你解决这个问题


这两种解决方案都有一些缺点。使用//NOSONAR将禁用该特定行的所有规则检查。另一方面,通过禁用该规则,您不仅可以消除Lombok造成的误报,还可以消除真正的问题。

SonarQuebe 5.0.X添加Lombok补丁,该补丁适用于Lombok的Getter

对于使用sonar-java-2.4的SonarQuebe 4.5.X,您可以在此处找到修补程序:

您也可以从这里下载二进制文件: