是否可以在注释处理器中获取枚举常量的构造函数参数的值?
我有一个枚举,它定义了一个构造函数并被扫描,因为它也带有注释。
@MyAnnotation
public enum Exmaple{
FOO("foo value"),
BAR("bar value");
Example(final String val){}
}
我希望能够获取常量定义的构造函数参数的值(即实际上知道常量 FOO 是用“foo value”初始化的)。这可能吗?
我可以找到每个常量,但没有封闭的元素,因此实际的
TypeElement
枚举常量似乎是该行的末尾。
任何帮助都会很棒!
给出以下枚举:
public enum EnumSize {
SMALL(1), MEDIUM(2), LARGE(3);
private final int size;
}
我们可以使用Tree API来获取语句:
var trees = Trees.instance(processingEnv);
VariableElement enumConstant = // get from enclosing elements
trees.getTree(enumConstant) // here you go:
/*public static final*/ SMALL /* = new EnumSize(1) */ /*enum*/ (1)