3
Я изучаю 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
}
Что я делаю неправильно?