我发现这种代码在Lift框架中很常见,写成这样:
object BindHelpers extends BindHelpers {}这是什么意思?

最佳答案

在这种情况下,BindHelpers是一个特征而不是一个类。让foo()作为BindHelpers中定义的方法,您可以访问它。

  • 通过配套对象使用它:BindHelpers.foo()
  • 将特征BindHelpers混合在一个类中,从而能够访问其内部的方法。

  • 例如:
    class MyClass extends MyParentClass with BindHelpers {
      val a = foo()
    }
    

    例如,Scalatest中针对ShouldMatchers使用了相同的技术。

    关于scala - 人们为什么要定义对象扩展其同伴类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4991649/

    10-09 02:56