6

注: 最初の例は機能します。それは私が得たいものを示しています。2 番目の例は、ボイラープレートなしで宣言したいのに失敗したことを示しています。


私は単純なことをしたいだけです:

trait SelfTest[T <: SelfTest[T]] {_ : T =>
  def get : T = this
}
class Test extends SelfTest[Test]
object Test extends Test

ただし、定型クラスの定義はありません。このようなもの:

trait SelfTest[T <: SelfTest[T]] {_ : T =>
  def get : T = this
}
object Test extends SelfTest[Test.type]

しかし、この方法は scala ( illegal cyclic reference involving object Test) によって拒否されます。#作成されたオブジェクトを示す記号のような魔法はありますか?

4

1 に答える 1