文章目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bae154e53eac9bf61dff98b14489962b.png)
1.概述
上一篇文章:【字节码】javassist 官网翻译 第1章节 本章节接着上一章节继续翻译。九师兄出品。
4.自省和定制
CtClass
提供了内省的方法。Javassist的自省能力与Java反射API的能力是兼容的
。CtClass提供getName()、getSuperclass()
、getMethods
()等。CtClass还提供了修改类定义的方法。它允许添加一个新的字段、构造函数和方法。检测方法主体也是可能的。
方法由CtMethod
对象表示。CtMethod
提供了几种方法来修改方法的定义。注意,如果一个方法是从父类继承的,那么代表继承方法的CtMethod
对象就代表了在父类中声明的方法。CtMethod
对象对应于每个方法声明。
例如,如果Point类声明了方法move(),而Point的子类ColorPoint没有覆盖move(),那么在Point中声明的和在ColorPoint中继承的两个move()方法都用同一个CtMethod对象表示。如果这个CtMethod对象表示的方法定义被修改,修改会反映在两个方法上。如果你只想修改ColorPoint中的move()方法,你首先必须在ColorPoint中添加一个代表move()的CtMethod对象的副本。CtMethod