涉及类

时间:2016-04-01 04:09:40

标签: scala

我正在学习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 
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这不是我在2.11.7中得到的错误:

myClass takes one type parameter, expected: two

哪个有意义:myClass用作Self的{​​{1}}参数,需要两个类型参数。

相关问题