簡體   English   中英

攔截方法調用

[英]Intercepting method calls

我有這個代碼

Foo foo = new Foo();
foo.callTheMethod();

有什么方法可以在不Foo.callTheMethod()或修改Foo類的情況下攔截Foo.callTheMethod()調用,並且沒有Foo工廠?

編輯:抱歉忘了提到這是在 Android 平台上。

使用 Java 的Proxy類。 它創建接口的動態實現並攔截方法,所有這些都是反射性的。

這是一個教程

您是否考慮過面向方面的編程AspectJ 請參閱此處此處了解 AspectJ/Android 信息。

看看Spring AOP 您不必手動對類進行子類化 - 但 Spring 會在幕后生成它們並添加代碼來進行攔截。

是的,通過AspectJ是可能的。 我將用一些代碼片段來解釋它:

public Aspect
{
    Object around()call(* Foo.callTheMethod())
    {
        // do your work
        return proceed(); 
    }                       
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM