Я знаю, что javassist.expr.MethodCall.getClassName() возвращает тип времени компиляции вызывающего метода, поскольку он зависит от анализа байт-кода. Мне интересно, есть ли эффективный способ получить фактический тип выполнения вызывающего метода с javassist, используя какой-то трюк или проверку кода.Использование библиотеки Javassist для обнаружения типа времени выполнения вызывающего метода
Вот простой пример, чтобы сделать вещи более ясными.
public interface Animal {
public void eat();
}
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("dog eating");
}
}
public class MainClass {
public static void main(String[] args) {
Animal a = new Dog();
a.eat();
}
}
В этом примере, я хотел бы найти способ, чтобы получить «собаку» объект в качестве метода вызывающего для метода «a.eat()»