[编辑更新] 这是对我的问题的正确陈述。
我希望在 a 中调用构造函数trait
。但似乎我必须使用apply
功能。它是否存在像 new this() 这样的用法?
就像下面的代码。它抛出类型不匹配。我希望添加构造函数的约束,或者我必须使用apply
函数。
trait B { this:C =>
def values:Seq[Int]
def apply(ints:Seq[Int]):this.type
def hello:this.type = apply( values map (_ + 1) )
}
trait C
class A(val v:Seq[Int]) extends C with B{
override def values: Seq[Int] = v
override def apply(ints: Seq[Int]): A.this.type = new A(ints)
}