[英]bytecode and ASM
這是有關INVOKESPECIAL字節碼指令的參考。 如果我在ASM框架中有一個包含INVOKESPECIAL指令的AbstractInsnNode,那么我的節點是否包括該指令的方法規范? 例如,使用如下代碼:
String ins = insn.toString;
如果insn有一條INVOKESPECIAL指令,我的ins將有一個類似於“ invokespecial java / lang / StringBuffer /()V”的字符串?
我想要做的是從INVOKESPECIAL指令獲取方法規范,並將其存儲在字符串中,以便我的程序可以讀取它。
您想在運行時閱讀課程嗎? 嘗試這個
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.util.ASMifierClassVisitor;
ClassReader cr = new ClassReader(b);
cr.accept(new ASMifierClassVisitor(new PrintWriter(System.out)), 0);
如果我在ASM框架中有一個包含INVOKESPECIAL指令的AbstractInsnNode,那么我的節點是否包括該指令的方法規范?
AFAIK,是的。 它應該是MethodInsnNode
的實例,而desc
字段應該是方法描述符字符串。
如果insn有一條INVOKESPECIAL指令,我的ins將有一個類似於“ invokespecial java / lang / StringBuffer /()V”的字符串?
實際上,有三個部分。 方法描述符字符串,方法名稱和擁有(在這種情況下為實際)方法的類的內部名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.