jjzjj

retransformClasses

全部标签

java - 如何在 asm 代码中正确使用 Instrumentation.retransformClasses()?

我正在使用asm库执行一些Java字节码修改-特别是修改我的类以实现新接口(interface)和相关方法。我当前的方法是通过javaagent使用核心asmAPI。我想保留这种动态方法,而不是静态修改.class文件。在更高层次上,我的问题是,如果我选择修改从B扩展的类A,我还需要修改B。(根据我对类在JVM中加载方式的理解,我相信类B将始终在A类之前交给变压器。(如果我错了,请纠正我)。鉴于该假设,我认为我需要返回并重新转换B。我的方法在这段代码中被捕获:publicbyte[]transform(ClassLoaderl,Stringname,Classclazz,Protect