PMD / Checkstyle - принудительное использование константы в значении аннотации - PullRequest
1 голос
/ 21 октября 2019

У меня есть Java-аннотация @Foo(value = "MyValueA"). Поскольку он может использовать только пару значений, я решил поместить их как константы в класс. Таким образом, пользователь может использовать @Foo(value = MyValues.A).

Как я могу заставить PMD или Checkstyle принудительно использовать эти константы вместо необработанных строк?

1 Ответ

2 голосов
/ 21 октября 2019

В PMD вы можете создать свой собственный набор правил , чтобы определить настраиваемое правило, используя выражение XPath , чтобы соответствовать для случаев, когда значение этой аннотации установлено в буквальную строку:

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