JAVA ASM中的类变换器 - 可以生成吗?

时间:2012-08-14 09:39:55

标签: java java-bytecode-asm

我想开始使用Java ASM来转换项目中的类 - 为某些方法添加一个String参数,并使用此参数发送日志。

asm website我已阅读

  

如果要实现类转换器,请编写两个Java源代码   文件(转换前后)并使用比较视图   ASMifier模式下的插件,用于比较等效的ASM代码。

但我觉得使用Java ASM非常困难。有没有可以生成class transformer的工具?这将非常有用!

2 个答案:

答案 0 :(得分:3)

查看ASMifier课程。这可用于生成代码以创建字节代码。 http://asm.ow2.org/doc/tutorial.html

您可能会发现其他工具(如Javassist或BCEL)更容易用于简单任务。

答案 1 :(得分:1)

如果您正在使用Eclipse,则应安装Bytecode Outline - 它调用ASMifier(在另一个答案中由Peter Lawry提及)并提供可以检查每个类或方法的视图。

编辑(从我的评论中复制)
要获得所需的变换器,请按照以下步骤操作:编写示例方法,复制代码以创建它(通过单击带有“ASM”的图标获得),将其源更改为您想要的源转换,复制其输出,将它们放入差异程序(我喜欢并推荐Diffuse)。查看ASM代码中的更改,将其应用于ASM转换器。