Potrzebuję przechwycić wywołanie metody w Javie i nie chcę używać JPDA ani JDI; Chcę, żeby to się stało w oryginalnej maszynie JVM.Wywoływanie metod przechwytywania w Javie
Na przykład:
public class A {
public void m() {}
}
public class Main {
public static void main(String[] args) {
A a = new A();
a.m();
}
}
Nie chcę, aby faktycznie pozwolić metoda wykonać w tym czasie, ale trzeba uchwycić je i zaplanować go w kolejce. W związku z tym AOP nie pomoże mi w tym zakresie. Myślałem o metodzie proxying. Coś takiego jak:
public class A {
public void m() {
methodQueue.add(new MethodInvocation() {
public void invoke() {m_orig();}
});
}
private void m_orig(){}
}
Jakieś pomysły? Bardzo dziękuję z góry.
Ta doskonała odpowiedź może jednak zostać osłabiona przez fakt, że konceptualnie, proxy * są ** implementacją AOP. – Riduidel