java - 如何抑制枚举常量/值缺少 javadoc checkstyle 警告?

标签 java checkstyle

Checkstyle 提示枚举值没有附加的 javadoc 注释。但至少在我的许多枚举中,由于值本身通常是不言自明的,因此添加 javadoc 似乎只会降低可读性,并产生不必要的困惑。考虑以下示例:

/**
 * Example enum to illustrate the problem.  Each value of this
 * enum represents a day of the week.
 */
public enum DaysOfWeekClean {

    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY;

}
/**
 * Example enum to illustrate the problem.  Each value of this
 * enum represents a day of the week, with comments added to each
 * distinct value to make the point.
 */
public enum DaysOfWeekCluttered {

    /**
     * The day of the week named "Sunday".
     */
    SUNDAY,

    /**
     * The day of the week named "Monday".
     */
    MONDAY,

    /**
     * The day of the week named "Tuesday".
     */
    TUESDAY,

    /**
     * The day of the week named "Wednesday".
     */
    WEDNESDAY,

    /**
     * The day of the week named "Thursday".
     */
    THURSDAY,

    /**
     * The day of the week named "Friday".
     */
    FRIDAY,

    /**
     * The day of the week named "Saturday".
     */
    SATURDAY;

}

如果将 JavadocVariable 模块添加到我的检查中,第一个示例 (DaysOfWeekClean) 将被标记,而第二个示例 (DaysOfWeekDirty ) 将通过。

这让我有点进退两难。我希望 checkstyle 标记未注释的普通类成员/变量,但不理会我的枚举常量。在大量搜索 Checkstyle 文档(以及 Checkstyle 源代码本身)和几个 StackOverflow 问题之后,我似乎无法弄清楚如何设置它。

枚举常量和类成员/变量中缺少 javadoc 时,我可以发出警告,或者我可以忽略两者,但我似乎无法检查一个而不检查另一个。


作为引用,这里有一些我尝试过的checkstyle配置及其结果:

  1. 当类成员或枚举常量都没有 javadoc 时发出警告的简单声明:

    <module name="JavadocVariable" />
    
  2. 当类成员或枚举常量没有 javadoc 时发出警告的声明:

    <module name="JavadocVariable">
        <property name="tokens" value="VARIABLE_DEF" />
    </module>
    
  3. 当类成员或枚举常量没有 javadoc 时发出警告失败的声明:

    <module name="JavadocVariable">
        <property name="tokens" value="ENUM_CONSTANT_DEF" />
    </module>
    

最佳答案

为了跳过枚举值,您可以像这样配置检查:

<module name="JavadocVariable">
  <property name="tokens" value="VARIABLE_DEF"/>
</module>

documentation截至 2017-01-18 是 missing this information ,但这已计划修复。
我用 Eclipse-CS 6.14 测试了这个行为,所以如果它不再适合你,那就是一个错误。

关于java - 如何抑制枚举常量/值缺少 javadoc checkstyle 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709418/

相关文章:

java - 是否可以使用 CheckStyle 限制方法中的代码行数,而代码行之间没有空换行符?

java - 如何防止从除一个类之外的所有类导入包?

maven - 如何外部化 maven-checkstyle-plugin 的 checkstyle 配置

java - 如何解析具有继承项的 Json 泛型数组

java - 将文件读取为字节数组的最快方法

java - 在 Java 正则表达式中使用空格

java - Spring mvc 4 hello world 示例抛出 javax.servlet.ServletException : Failed to instantiate WebApplicationInitializer class

java - SimpleDateFormat 的 Checkstyle/PMD 规则不是线程安全警告

java - 如何摆脱 Checkstyle 消息 'File does not end with a newline.'

java - 2D JComboBox,其中一个使用 ActionListener 控制另一个项目