私はこのコードを持っています
Foo foo = new Foo();
foo.callTheMethod();
クラスをサブクラス化または変更せずに、ファクトリを持たずにFoo.callTheMethod()
呼び出しを傍受できる方法はありますか?Foo
Foo
編集:これはAndroidプラットフォーム上にあることを忘れて申し訳ありません。
私はこのコードを持っています
Foo foo = new Foo();
foo.callTheMethod();
クラスをサブクラス化または変更せずに、ファクトリを持たずにFoo.callTheMethod()
呼び出しを傍受できる方法はありますか?Foo
Foo
編集:これはAndroidプラットフォーム上にあることを忘れて申し訳ありません。
アスペクト指向プログラミング、そしておそらくAspectJを検討しましたか? AspectJ/Android の情報については、こちらとこちらを参照してください。
はい、 AspectJを通じて可能です。いくつかのコード スニペットで説明します。
public Aspect
{
Object around()call(* Foo.callTheMethod())
{
// do your work
return proceed();
}
}
Spring AOPを見てください。クラスを手動でサブクラス化する必要はありませんが、Spring はバックグラウンドでそれらを生成し、インターセプトを行うコードを追加します。