Scala 涉及类的非法循环引用
我正在学习Scala,遇到了一个涉及泛型的错误。我把一种特质定义为Scala 涉及类的非法循环引用,scala,Scala,我正在学习Scala,遇到了一个涉及泛型的错误。我把一种特质定义为 trait myTrait[ A, B, Self[X, Y] <: myTrait[X, Y, Self]] { protected def self: Self[A, B] } 这给了我一个编译错误“非法循环引用涉及类myClass”。如果我将myClass声明为 class myClass[A, B] extends myTrait[A, B, myClass]{ override protec
trait myTrait[
A, B,
Self[X, Y] <: myTrait[X, Y, Self]] {
protected def self: Self[A, B]
}
这给了我一个编译错误“非法循环引用涉及类myClass”。如果我将myClass声明为
class myClass[A, B] extends myTrait[A, B, myClass]{
override protected def self:myClass[A, B] = this
}
我做错了什么?这不是我在2.11.7中遇到的错误:
myClass takes one type parameter, expected: two
这很有意义:myClass
用作MyTrait
的Self
参数,它需要两个类型参数
myClass takes one type parameter, expected: two