我有这段代码
Foo foo = new Foo();
foo.callTheMethod();
有没有办法可以在没有继承或修改Foo.callTheMethod()
类且没有Foo
工厂的情况下拦截Foo
调用?
答案 0 :(得分:23)
答案 1 :(得分:11)
您是否考虑过aspect-oriented-programming和AspectJ?有关AspectJ / Android信息,请参阅here和here。
答案 2 :(得分:4)
看看Spring AOP。你不必手动对你的类进行子类化 - 但是Spring将在幕后生成它们并添加代码来进行拦截。
答案 3 :(得分:3)
是的,AspectJ是可能的。我将用一些代码片段来解释它:
public Aspect
{
Object around()call(* Foo.callTheMethod())
{
// do your work
return proceed();
}
}