嗨,我想知道是否有一种方法可以反射(或以其他方式)拦截发送到类的所有方法调用。我知道使用 Dynamic 可以拦截未知方法,但是类中已经定义的方法呢?
我想找到一种方法来做到这一点,而不必修改方法的语法(因为它是为了拦截方面框架中的方法)。
作为我想做的一个例子,想象一下:
class A extends AProxy {
def foo =
println("do something")
}
class AProxy extends Dynamic {
def captureKnownMethods = {
//Capture all methods defined in A
}
def applyDynamic(args) = {
//Capture unknown methods
}
}
A myclass = new A
myclass.foo //method call captured by captureKnownMethods
myclass.bar //method call captured by applyDynamic