Javassit 是一个用来操作 Java 字节码的库,通过操作字节码可以实现反射,即在运行时 更改类的实现的能力,而且比起使用反射 API 性能更好
使用
- 首先获取到 class 定义的容器
ClassPool
- 通过
ClassPool
获取已经编译好的类(Compile time class),并给这个类设置一个父类 - 使用 writeFile 将这个类的定义写到磁盘,以便后面使用
CtClass 方法
-
加载字节码
-
定义新的类
-
通过 CtMethod 和 CtField 增加属性和方法