【发布时间】:2011-11-25 13:09:59
【问题描述】:
我正在编写一个注解处理器,我需要TreeTranslator.visitIdent 来进行静态方法调用。
我想我应该使用TreeMaker.Call,或TreeMaker.Create,还是应该使用JCMethodInvocation?我找不到任何如何使用它的例子。
有人可以帮我吗?
【问题讨论】:
标签: java compiler-construction annotations
我正在编写一个注解处理器,我需要TreeTranslator.visitIdent 来进行静态方法调用。
我想我应该使用TreeMaker.Call,或TreeMaker.Create,还是应该使用JCMethodInvocation?我找不到任何如何使用它的例子。
有人可以帮我吗?
【问题讨论】:
标签: java compiler-construction annotations
在您的注释处理器运行时,被检查的类仅以源代码形式存在。因此你不能在它上面调用方法。
另外,注解处理器不能直接修改正在编译的类。相反,您应该创建一个新类:
Filer filer = env.getFiler();
PrintWriter pw = filer.createSourceFile("com.example.MyClass");
【讨论】: