我有这个代码
Foo foo = new Foo();
foo.callTheMethod();
有什么方法可以在Foo.callTheMethod()
没有子类化或修改Foo
类且没有Foo
工厂的情况下拦截调用?
编辑:抱歉忘了提到这是在 Android 平台上。
我有这个代码
Foo foo = new Foo();
foo.callTheMethod();
有什么方法可以在Foo.callTheMethod()
没有子类化或修改Foo
类且没有Foo
工厂的情况下拦截调用?
编辑:抱歉忘了提到这是在 Android 平台上。
看看Spring AOP。您不必手动子类化您的类 - 但 Spring 将在幕后生成它们并添加代码来进行拦截。
是的,通过AspectJ是可能的。我将用一些代码片段来解释它:
public Aspect
{
Object around()call(* Foo.callTheMethod())
{
// do your work
return proceed();
}
}