lombok checkstyle VisibilityModifier 错误

Fed*_*cia 5 checkstyle lombok

我有以下使用 lombok@Value生成不可变类的代码:

@Value
public class InputDTO {
    String field;
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它不同意 checkstyle 可见性修饰符检查,它抱怨此错误:

Variable 'field' must be private and have accessor methods. (18:10) [VisibilityModifier]
Run Code Online (Sandbox Code Playgroud)

我找到了一种解决方法来抑制这样的检查:

@SuppressWarnings("checkstyle:VisibilityModifier")
Run Code Online (Sandbox Code Playgroud)

但是有没有办法让 checkstyle 验证 lombok 生成的代码而不是普通的原始代码?

pav*_*mok 7

有一种方法可以在checkstyle.xml配置中禁用此违规一次,而不是@SuppressWarnings在每个文件中使用并污染您的生产代码。

使用SuppressionXpathSingleFilter您可以执行以下操作:

<module name="TreeWalker">
    <module name="SuppressionXpathSingleFilter">
        <property name="checks" value="VisibilityModifier"/>
        <property name="query" value="//*[MODIFIERS//*[@text = 'Value']]/descendant-or-self::node()"/>
    </module>
</module>
Run Code Online (Sandbox Code Playgroud)