假设一个类定义了一个常量字段:
public class Foo {
public static final int CONSTANT_FIELD = 3;
}
并假设注释接口声明如下:
public @interface Something {
int value();
}
最后,假设注释使用如下:
@Something(Foo.CONSTANT_FIELD)
问题:在注释处理器中,我如何才能CONSTANT_FIELD
从其用于设置值的元素中获取元素@Something
?
编辑:在问题本身中包含一个具体示例。
我有一个这样使用的注释:
@RuleDependency(recognizer = BQLParser.class,
rule = BQLParser.RULE_statement,
version = 0)
注释处理器需要知道这是在类RULE_statement
中定义的常量。BQLParser
如果我可以通过设置注释的属性直接访问Element
for ,它将消除对属性的需要。此注解在实际应用程序中使用了数千次,并且始终只是常量的声明类型。解决这个问题会将注释的使用简化为:BQLParser.RULE_statement
rule
recognizer
recognizer
rule
@RuleDependency(rule = BQLParser.RULE_statement, version = 0)