包装特定特征的所有方法

时间:2016-03-19 14:51:42

标签: scala scala-macros

说我有一个特点:

trait Foo {
    def getFoo: Int
    def setFoo(i: Int): Unit
}

我想包装此特征(和其他)的所有方法,而不是再次实际指定所有签名。

类似的东西:

class LoggingWrapper[T](wrappedInstance: T) extends T {
    // what to do here if I wanted to log every call to methods in T
    // without redefining the signatures?
}

日志记录只是一个简单的用例,其他人会添加超时,记忆/缓存等。

我如何在Scala 2.11中执行此操作?运行时反射?编译宏?

0 个答案:

没有答案