从AnnotationProcessor读取的字节码

问题描述:

可能重复:
Plugging in to Java compilers从AnnotationProcessor读取的字节码

编辑 - 这似乎是Plugging in to Java compilers


愚弄的人,我想实现一个AnnotationProcessor用于将被调用的apt工具将一个类编译为字节码,可以读取和修改字节码。

这样做的原因是我想将带注释的方法翻译成另一种语言,并用存根调用翻译后的版本替换java方法。

但是AnnotationProcessorEnvironment接口只提供了生成新类的方法,而不是回读前一轮生成的类文件。

Instrumentation API做了类似于我想要的东西,但只在运行时。我正在寻找一种在编译时做到这一点的方法。

+0

根据要求关闭。不删除,因为标题是描述性的,会引导更多的人访问原文。 – 2009-08-31 18:35:18

我看看,当我想要做的编译器的一些操作,但最终使用后处理器。

您可以使用APT操作抽象语法树(AST),但只能使用编译器特定的黑客手段。如果你需要一个如何完成的例子,Project Lombok可以通过Sun javac和Eclipse编译器来完成。目前,似乎没有更好的方法。

+0

不只是相关,而是一个愚蠢。感谢您的链接。 – finnw 2009-08-31 18:16:40