方法在scala中调用拦截

时间:2015-01-20 15:22:11

标签: scala reflection method-invocation method-interception

嗨我想知道是否有办法反射(或以其他方式)拦截发送给类的所有方法调用。我知道可以使用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

0 个答案:

没有答案