2016-04-01 8 views
3

私はScalaを学んでいますが、ジェネリックスに関わるエラーに悩まされています。私は、これは私のコンパイルエラー「myClassクラスが関与する違​​法な循環参照」を与えるクラスを含む不正な循環参照

class myClass[B] extends myTrait[Int, B, myClass]{ 
    override protected def self:myClass[B] = this 
} 

として

trait myTrait[ 
    A, B, 
    Self[X, Y] <: myTrait[X, Y, Self]] { 
protected def self: Self[A, B] 
} 

と私のクラスとしての特性を定義しました。私がmyClassを宣言すると、エラーは消え去る

class myClass[A, B] extends myTrait[A, B, myClass]{ 
    override protected def self:myClass[A, B] = this 
} 

私は間違っていますか?

答えて

0

私は2.11.7で取得エラーではありません。

myClass takes one type parameter, expected: two 

理にかなっています:myClassは、二つの型パラメータを必要とMyTraitSelf引数として使用されています。

関連する問題