С учетом структуры анализа байт-кода Java и ASM,
как разрешить целевой метод при полиморфном вызове?
Например:
class ClassA {
public void foo() {…}
}
class ClassB extends ClassA {
public void foo() {…}
}
…
ClassA inst = new ClassB();
inst.foo();
Сгенерирован следующий байт-коддля последней строки:
…
INVOKEVIRTUAL ClassA.foo()V
…
Эта инструкция предназначена для родительского метода.
Но фактический метод - ClassB.foo()
.
Как я могу разрешить "настоящий" метод, который будетназываться?