【问题标题】:Exclude getters and setters from method count in CheckStyle从 CheckStyle 中的方法计数中排除 getter 和 setter
【发布时间】:2018-07-13 07:50:26
【问题描述】:

我得到了自定义 checkstyle.xml 文件,其中包含 MethodCount 的条目,如下所示:

<module name="MethodCount">
    <property name="maxTotal" value="20"/>
    <property name="maxPrivate" value="10"/>
    <property name="maxPublic" value="10"/>
    <property name="severity" value="error"/>
</module>

然而,这给带有 getter 和 setter 的大型模型类带来了问题,它们由另一个 Web 服务提供。我可以以某种方式排除这种方法吗?或者不计算这些是否被认为是一种不好的做法?

【问题讨论】:

    标签: java intellij-idea checkstyle


    【解决方案1】:

    你可以创建suppression.xml文件:

    <?xml version="1.0"?>
    
    <!DOCTYPE suppressions PUBLIC
        "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
        "https://checkstyle.org/dtds/suppressions_1_2.dtd">
    
    <suppressions>
        <suppress files="\w*(Dto.java|Entity.java)\b" checks="MethodCount"/>
    </suppressions>
    

    并将其指向checkstyle.xml

    <module name="SuppressionFilter">
        <property name="file" value="./suppression.xml"/>
    </module>
    

    然后您将禁止检查MethodCount 以检查以Entity.javaDto.java 结尾的文件

    AFAIK 你不能只压制 getter/setter。一般来说,对于实体或 dtos 等数据结构,拥有超过 5 个带有 getter 和 setter 的字段是没有问题的。

    但是,如果您有真实的对象,为每个字段添加 setter/getter 是一种不好的做法。

    【讨论】:

    • 这是解决方法,但是在我自己在文档中查找此内容后,我可以确认您不能按名称排除方法。您需要排除整个 DTO 类。
    【解决方案2】:

    不太确定它是否是您需要的,但您可以忽略检查中的 getter 和 setter 方法:

    转到Settings (CTRL+Alt+S), 然后 Editor->Inspections->Java->Class metrics->Class with too many methods

    【讨论】:

    • 遗憾的是,在检查选项卡中更改此选项不会使 CheckStyle 更改其行为。
    猜你喜欢
    • 2011-11-17
    • 2016-11-10
    • 1970-01-01
    • 2011-04-14
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多