Tôi cần chụp một cuộc gọi phương thức bằng Java và tôi không muốn sử dụng JPDA hoặc JDI; Tôi muốn nó xảy ra trong JVM ban đầu.Gọi phương thức chụp trong Java
Ví dụ:
public class A {
public void m() {}
}
public class Main {
public static void main(String[] args) {
A a = new A();
a.m();
}
}
Tôi không muốn thực sự cho phép phương pháp này thực hiện vào thời điểm đó, nhưng cần phải nắm bắt nó và sắp xếp nó trong một hàng đợi. Do đó, AOP sẽ không giúp tôi trong vấn đề này. Tôi đã nghĩ về phương pháp proxy. Một cái gì đó như:
public class A {
public void m() {
methodQueue.add(new MethodInvocation() {
public void invoke() {m_orig();}
});
}
private void m_orig(){}
}
Bất kỳ ý tưởng nào? Cảm ơn rất nhiều trước.
Câu trả lời tuyệt vời này tuy nhiên có thể bị suy yếu bởi thực tế là, khái niệm, proxy ** là ** triển khai AOP. – Riduidel