我希望能够在以下代码示例中检测name *变量的初始化方式,以及是否内联了name *。这可能吗?
@FancyAnnotation
public static final String name1 = new String("B1");
@FancyAnnotation
public static final String name2 = "B2";
感谢。
答案 0 :(得分:4)
ElementVisitors可用于检测常量初始值设定项。
boolean usesConstantValue = element.accept(new ConstantValueDetector(), null);
...
private static class ConstantValueDetector extends SimpleElementVisitor8<Boolean, Void> {
@Override
public Boolean visitVariable(VariableElement e, Void aVoid) {
super.visitVariable(e, aVoid);
return e.getConstantValue() != null;
}
}