我如何使用特征scala.Proxy

Jen*_*der 10 proxy scala dynamic scala-2.8

我刚刚在API中找到了它,并希望看到一两个例子以及解释它有什么用处.

Aar*_*rup 14

代理特征提供用于创建代表一个有用的依据,但要注意,它仅提供了方法的实现在Any(equals,hashCode,和toString).您必须自己实施任何其他转发方法.代理通常与pimp-my-library模式一起使用:

class RichFoo(val self: Foo) extends Proxy {
   def newMethod = "do something cool"
}

object RichFoo {
   def apply(foo: Foo) = new RichFoo(foo)
   implicit def foo2richFoo(foo: Foo): RichFoo = RichFoo(foo)
   implicit def richFoo2foo(richFoo: RichFoo): Foo = richFoo.self
}
Run Code Online (Sandbox Code Playgroud)

标准库也包含了一组可用于创建收集有用的代理(性状SeqProxy,SetProxy,MapProxy,等).

最后,scala-incubator(AutoProxy插件)中有一个编译器插件,它将自动实现转发方法.另见这个问题.