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;
}
Run Code Online (Sandbox Code Playgroud)
/**
* 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;
}
Run Code Online (Sandbox Code Playgroud)
如果将JavadocVariable模块添加到我的检查中,第一个示例 ( DaysOfWeekClean) 将被标记,而第二个示例 ( DaysOfWeekDirty) 将通过。
这让我有点进退两难。我希望 checkstyle 标记没有注释的普通类成员/变量,但不要理会我的枚举常量。在对 Checkstyle 文档(以及 Checkstyle 源代码本身)和几个 StackOverflow 问题进行了大量搜索之后,我似乎无法弄清楚如何进行设置。
当枚举常量和类成员/变量中都缺少 javadoc 时,我可以发出警告,或者我可以忽略两者,但我似乎无法检查一个而不是另一个。
作为参考,以下是我尝试过的一些 checkstyle 配置及其结果:
当类成员或枚举常量都没有 javadoc 时发出警告的简单声明:
<module name="JavadocVariable" />
Run Code Online (Sandbox Code Playgroud)当类成员或枚举常量没有 javadoc 时发出警告的声明:
<module name="JavadocVariable">
<property name="tokens" value="VARIABLE_DEF" />
</module>
Run Code Online (Sandbox Code Playgroud)当类成员或枚举常量没有 javadoc 时失败警告的声明:
<module name="JavadocVariable">
<property name="tokens" value="ENUM_CONSTANT_DEF" />
</module>
Run Code Online (Sandbox Code Playgroud)为了跳过枚举值,您可以像这样配置检查:
<module name="JavadocVariable">
<property name="tokens" value="VARIABLE_DEF"/>
</module>
Run Code Online (Sandbox Code Playgroud)
截至 2017-01-18的文档缺少此信息,但计划修复此信息。
我用 Eclipse-CS 6.14 测试了这个行为,所以如果它不再适合你,那将是一个错误。
| 归档时间: |
|
| 查看次数: |
9248 次 |
| 最近记录: |