有没有办法知道字节码中的调用指令中的方法是否是本机方法?我正在寻找一个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程序的指导员。
答案 0 :(得分:3)
您无法在呼叫站点获取信息,因为呼叫站点不知道该信息。呼叫站点不知道实际调用该方法的哪个覆盖。它在运行时解决了。