1 简介
ASM是一个可以用来生成、转换和分析以字节数组表示的已编译 Java 类的工具。
ASM 库提供了两个用于生成和转换已编译类的 API,一个是核心 API,以基于事件的形式来表示类,另
一个是树 API,以基于对象的形式来表示类。
基于事件就是每个把方法声明、字段、指令看成事件,这些事件有必须遵循的发生顺序。
基于对象就是把方法声明、字段、指令看成看成对象,每个对象都有一些引用,指向表示其组成部分的
对象。
下面介绍如何使用ASM来生成一个类,并让它能够输出"Hello, world!"。
2 实际操作
要写一个能打印hello world的类,第一步是要生成一个类。
在ASM中,为生成一个类,惟一必需的组件是 ClassWriter 组件,ClassWriter是ClassVisitor的子类。
代码如下:
ClassWriter cw = new ClassWriter(0);
cw.