1

可能重复:
插入 Java 编译器

编辑- 这似乎是插入 Java 编译器的骗局


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

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

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

检测 API 的功能与我想要的类似,但仅在运行时。我正在寻找一种在编译时执行此操作的方法。

4

1 回答 1

1

当我想在编译器中进行一些操作时,我看了看,但最终使用了后处理器。

您可以使用 APT 操作抽象语法树 (AST),但只能使用特定于编译器的 hack。如果您想要一个如何完成的示例,Project Lombok使用 Sunjavac和 Eclipse 编译器来完成。目前,似乎没有更好的方法。

于 2009-08-31T18:08:05.427 回答