我正在学习Scala,并且遇到了涉及泛型的错误。我已经将特征定义为
trait myTrait[
A, B,
Self[X, Y] <: myTrait[X, Y, Self]] {
protected def self: Self[A, B]
}
和我的班级
class myClass[B] extends myTrait[Int, B, myClass]{
override protected def self:myClass[B] = this
}
这给了我一个编译错误“涉及类myClass的非法循环引用”。如果我将myClass声明为
,则错误消失class myClass[A, B] extends myTrait[A, B, myClass]{
override protected def self:myClass[A, B] = this
}
我做错了什么?
答案 0 :(得分:0)
这不是我在2.11.7中得到的错误:
myClass takes one type parameter, expected: two
哪个有意义:myClass
用作Self
的{{1}}参数,需要两个类型参数。