如何在注释处理器中捕获常量表达式?
How can I capture constant expression in annotation processor?
我希望能够检测到 name* 变量是如何在以下代码示例中初始化的,以及 name* 是否被内联。这可能吗?
@FancyAnnotation
public static final String name1 = new String("B1");
@FancyAnnotation
public static final String name2 = "B2";
谢谢。
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;
}
}
我希望能够检测到 name* 变量是如何在以下代码示例中初始化的,以及 name* 是否被内联。这可能吗?
@FancyAnnotation
public static final String name1 = new String("B1");
@FancyAnnotation
public static final String name2 = "B2";
谢谢。
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;
}
}