【问题标题】:PMD/Checkstyle - Force usage of Constant in Annotation-ValuePMD/Checkstyle - 在注释值中强制使用常量
【发布时间】:2020-02-17 12:44:06
【问题描述】:

我有一个 java 注释 @Foo(value = "MyValueA")。由于它只能使用几个值,我决定将它们作为常量放入一个类中。所以用户可以改用@Foo(value = MyValues.A)

如何让 PMD 或 Checkstyle 强制使用此常量,而不是原始字符串?

【问题讨论】:

  • 使用enum..
  • @Foo(...) 来自外部库。我无法更改其值的类型。

标签: java annotations checkstyle pmd static-code-analysis


【解决方案1】:

在 PMD 中,您可以创建 your own ruleset 来定义 a custom rule using an XPath expression 以匹配此注释的值设置为文字字符串的情况:

//NormalAnnotation[@AnnotationName = 'Foo']//MemberValuePair[@Image = 'value']/MemberValue//Literal

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2018-12-13
    • 2019-08-12
    • 2010-09-16
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多