注: 最初の例は機能します。それは私が得たいものを示しています。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
) によって拒否されます。#
作成されたオブジェクトを示す記号のような魔法はありますか?