/ / Виявити, якщо метод в інструкції виклику є рідним, чи ні, в ASM / java bytecode - java, bytecode, java-bytecode-asm

Визначити, чи метод в інструкції викликати є нативним чи ні, в ASM / java bytecode - java, bytecode, java-bytecode-asm

Чи є спосіб дізнатися, чи метод в інструкції посилань на байт-код є нативним методом чи ні? Я шукаю специфічне рішення для ASM.

The visitMethodInsn(int opcode, String owner, String name, String desc)) схоже, не надає цієї інформації. Якщо це так, що я пропускаю? АБО існує інший спосіб підтвердити, чи метод, який слід виконати, є нативним чи ні?

Я знаю, що ви можете це зробити, коли відвідаєте метод за допомогою visitMethod(int access, String name, String desc, String signature, String[] exceptions) в ClassVisitor клас за допомогою int access параметр. Але мені цікаво отримати цю інформацію на сайтах викликів методу.

Я використовую API ASM Core.

Це для інструмента для програм Java, які я пишу за допомогою ASM.

Відповіді:

3 для відповіді № 1

Ви не можете отримати інформацію на сайтах дзвінків, оскільки вона не відома на сайтах дзвінків. Сайти викликів не знають, яке заміщення методу насправді буде викликано. Це вирішено під час виконання.