我可以使用ASM的同一个“生成器”生成Java字节码和源代码吗?
我的GoogleFoo让我失望了。如果我有一个框架可以基于注释生成代码,我想同时支持构建时源代码生成,这样开发人员可以提前编译,也可以查看生成的内容,甚至可能修改代码,还可以为更动态的应用程序提供运行时字节码生成,例如,基于插件的应用程序,我可以使用ASM完成这两项任务,还是真的需要使用两个不同的库对其进行两次编程?如果可能,欢迎链接到示例。虽然这不能直接回答问题,但我建议使用over ASM我可以使用ASM的同一个“生成器”生成Java字节码和源代码吗?,java,java-bytecode-asm,Java,Java Bytecode Asm,我的GoogleFoo让我失望了。如果我有一个框架可以基于注释生成代码,我想同时支持构建时源代码生成,这样开发人员可以提前编译,也可以查看生成的内容,甚至可能修改代码,还可以为更动态的应用程序提供运行时字节码生成,例如,基于插件的应用程序,我可以使用ASM完成这两项任务,还是真的需要使用两个不同的库对其进行两次编程?如果可能,欢迎链接到示例。虽然这不能直接回答问题,但我建议使用over ASM 使用Javassist,您首先要生成源代码,然后将其交给Javassist编译器转换成字节码,这样您现
使用Javassist,您首先要生成源代码,然后将其交给Javassist编译器转换成字节码,这样您现在就可以无需任何额外的技巧就同时使用这两种代码。另外,IMHO,为Javassist生成源代码要比使用字节码和ASM容易得多 虽然这不能直接回答问题,但我建议使用over ASM
使用Javassist,您首先要生成源代码,然后将其交给Javassist编译器转换成字节码,这样您现在就可以无需任何额外的技巧就同时使用这两种代码。另外,IMHO,为Javassist生成源代码要比使用字节码和ASM容易得多 对于构建时代码生成,我建议使用EclipseJava编译器,它没有用于生成代码的开放API,但实际上非常易于使用。您可以在这里查看如何使用它:这段代码主要是由我编写的。还有一个例子说明了如何在MyClassLoader内部类中动态加载已编译的类。对于构建时代码生成,我建议使用eclipse java编译器,它没有用于此目的的开放API,但实际上非常易于使用。您可以在这里查看如何使用它:这段代码主要是由我编写的。还有一个例子说明了如何在MyClassLoader内部类中动态加载已编译类。我不确定这对我是否有用,但我给你+1作为输入:你可以在这里起诉它,哈哈!我不确定这对我是否有用,但我给你+1的打字错误:你可以在这里起诉它,哈哈!我明白你的意思。我刚才看过Javaassist。如果没有人知道,那么这可能就是我要做的。我又看了一遍,我也不知道如何使用Javassist做到这一点。用于生成类文件的源代码可能包含$cflow…,因此它不是真正的Java代码。我只能看到在CtClass中保存编译类的方法。你确定这是支持的吗?一天后没有其他答案。ASM一定不可能,所以你得到了分数。我明白你的意思。我刚才看过Javaassist。如果没有人知道,那么这可能就是我要做的。我又看了一遍,我也不知道如何使用Javassist做到这一点。用于生成类文件的源代码可能包含$cflow…,因此它不是真正的Java代码。我只能看到在CtClass中保存编译类的方法。你确定这是支持的吗?一天后没有其他答案。在ASM中一定不可能,因此您可以获得分数。