代码之家  ›  专栏  ›  技术社区  ›  finnw

从AnnotationProcessor读取字节码[重复]

  •  1
  • finnw  · 技术社区  · 15 年前

    可能重复:
    Plugging in to Java compilers

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


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

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

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

    InstrumentationAPI执行的操作与我想要的类似,但只在运行时执行。我正在寻找一种在编译时实现这一点的方法。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community Reversed Engineer    7 年前

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

    您可以使用apt操作抽象语法树(ast),但只能使用特定于编译器的黑客。如果你想要一个这样做的例子, Project Lombok 它和太阳一起吗 javac 以及Eclipse编译器。目前,似乎没有更好的方法。