定義された抽象タイプがClassTag
になるように制約する型クラスを作成したいとします。ここでは簡単な例です:ClassTag型のClassTag
trait A[T] {
type B <: Z
val tag = implicitly[ClassTag[B]]
}
// Error:(8, 24) No ClassTag available for A.this.B
// val tag = implicitly[ClassTag[B]]
^
私はClassTag[B]
を持っているB
を必要と私はA
がT
のために暗黙的に利用できるようにしたいので、私はdef foo[T: A](t: T)
のように、trait A[T, B: ClassTag]
ようA
を定義することはできません。 B
も上限にしてZ
にする必要がありますが、違いはありません。
B
にClassTag
という制約がありますか?
がhttp://stackoverflow.com/questions/を参照し9680630/use-context-bound-in-type-alias – slouc