ASM-ClassWriter&ClassVisitor

  1. ClassWriter继承ClassVisitor
  2. 构造方法ClassVisitor(api,nextClassVisitor)

ClassVisitor构造方法是链表形式的,nextClassVisitor就是下一个节点ClassVisitor,链表最后一个节点为ClassWriter。
ClassVisitor1-> ClassVisitor2-> ClassVisitor3->ClassWriter

ClassVisitor的super方法默认实现方式就是调用nextClassVisitor方法,所以在默认情况下调用的都是ClassWriter。

因为ClassVisitor的链表关系导致MethodVisitor也为链表形式。
MethodVisitor1-> MethodVisitor2-> MethodWriter

只要链表没断,最后指向MethodWriter和ClassWriter的内部实现时,才会真正执行字节码改写逻辑。

所以增加,删除一个类或者方法,只要增加一个链路或断开一个链路即可

你可能感兴趣的:(ASM-ClassWriter&ClassVisitor)