【问题标题】:What benefits does Proxy[T] have over an implicit class?Proxy[T] 相对于隐式类有什么好处?
【发布时间】:2025-12-09 14:20:05
【问题描述】:

在 Scala 标准库中有一个类Proxy[T]。来自 API:

这个类实现了一个简单的代理,它将所有对类 Any 中定义的公共非最终方法的调用转发给另一个对象自身。

从以上以及关于这个类的堆栈溢出中的大量问答,我推断这与使用implicit class 相同。

这是正确的吗? 如果是这样,使用Proxy 类而不是implicit 关键字有哪些优点/缺点?

【问题讨论】:

    标签: scala implicit


    【解决方案1】:

    这两件事完全不相关。 Proxy 的描述有点误导。它所做的只是根据对等对象实现hashCodeequalstoString。它没有任何转发任何其他方法的魔力。

    另请参阅此问题:How do I use the trait scala.Proxy

    【讨论】:

    • 参考相关问题,接受的答案建议使用Proxy 使用新方法扩展另一个类。您可以使用代码implicit class RichFoo(self: Foo) { def newMethod = "do something cool" } 实现相同的目的。这在实践中不是一回事吗?
    • 坦率地说,我不知道你为什么要使用Proxy。当然,我从来没有这样做过……
    最近更新 更多