1.概述
在上一篇文章中:【ASM】字节码操作 转换已有的类 记录方法运行时间 我们学会了在方法进入和方法输出的时候添加代码实现方法的计时功能。
本次我们要学习的是删除功能,移除Instruction
1.如何移除Instruction
在修改方法体的代码时,如何移除一条Instruction呢 其实,很简单,就是让中间的某-个MethodVisitor对象不向后“传递该instruction”就可以了。
但是,需要要注意一点:无论是添加instruction ,还是删除instruction ,还是要替换instruction .都要保持operand stack修改前和修改后是一致的。 这句话该怎么理解呢? 我们举个例子来进行说明。
假如,有一条打印语句,如下:
System.out.println(