- ClassWriter继承ClassVisitor
- 构造方法ClassVisitor(api,nextClassVisitor)
ClassVisitor构造方法是链表形式的,nextClassVisitor就是下一个节点ClassVisitor,链表最后一个节点为ClassWriter。
ClassVisitor1-> ClassVisitor2-> ClassVisitor3->ClassWriter
ClassVisitor的super方法默认实现方式就是调用nextClassVisitor方法,所以在默认情况下调用的都是ClassWriter。
因为ClassVisitor的链表关系导致MethodVisitor也为链表形式。
MethodVisitor1-> MethodVisitor2-> MethodWriter
只要链表没断,最后指向MethodWriter和ClassWriter的内部实现时,才会真正执行字节码改写逻辑。
所以增加,删除一个类或者方法,只要增加一个链路或断开一个链路即可