从AnnotationProcessor读取的字节码
问题描述:
可能重复:
Plugging in to Java compilers从AnnotationProcessor读取的字节码
编辑 - 这似乎是Plugging in to Java compilers
愚弄的人,我想实现一个AnnotationProcessor
用于将被调用的apt
工具将一个类编译为字节码,可以读取和修改字节码。
这样做的原因是我想将带注释的方法翻译成另一种语言,并用存根调用翻译后的版本替换java方法。
但是AnnotationProcessorEnvironment
接口只提供了生成新类的方法,而不是回读前一轮生成的类文件。
Instrumentation API做了类似于我想要的东西,但只在运行时。我正在寻找一种在编译时做到这一点的方法。
答
我看看,当我想要做的编译器的一些操作,但最终使用后处理器。
您可以使用APT操作抽象语法树(AST),但只能使用编译器特定的黑客手段。如果你需要一个如何完成的例子,Project Lombok可以通过Sun javac
和Eclipse编译器来完成。目前,似乎没有更好的方法。
+0
不只是相关,而是一个愚蠢。感谢您的链接。 – finnw 2009-08-31 18:16:40
根据要求关闭。不删除,因为标题是描述性的,会引导更多的人访问原文。 – 2009-08-31 18:35:18