【问题标题】:Illegal cyclic reference involving class涉及类的非法循环引用
【发布时间】:2016-04-01 15:29:14
【问题描述】:

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

我做错了什么?

【问题讨论】:

    标签: scala


    【解决方案1】:

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

    myClass takes one type parameter, expected: two
    

    有道理:myClass 用作MyTraitSelf 参数,需要两个类型参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2016-12-23
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多