簡體   English   中英

字節碼和ASM

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM