在ASM / java字节码中检测调用指令中的方法是否为本机方法

时间:2013-04-23 23:26:45

标签: java bytecode java-bytecode-asm

有没有办法知道字节码中的调用指令中的方法是否是本机方法?我正在寻找一个ASM特定的解决方案。

visitMethodInsn(int opcode, String owner, String name, String desc))似乎没有提供此信息。如果是的话,我错过了什么? OR是否有不同的方法来确认要执行的方法是否是本机的?

我知道当您使用visitMethod(int access, String name, String desc, String signature, String[] exceptions)参数访问ClassVisitor类中int access的方法时,您可以执行此操作。但我有兴趣在该方法的呼叫站点获取此信息。

我使用的是ASM Core API。

这是我使用ASM编写的Java程序的指导员。

1 个答案:

答案 0 :(得分:3)

您无法在呼叫站点获取信息,因为呼叫站点不知道该信息。呼叫站点不知道实际调用该方法的哪个覆盖。它在运行时解决了。