私はオリジナルのコードを単純化して問題に集中しました。抽象クラスのパターンマッチングを使用して、タイプに応じたメソッドを呼び出す
私はクラスのこのセットを持っている:
abstract class A(n: String){
def name = n
}
abstract class B[T](n: String) extends A(n){
def printT(t: T) = println(t)
}
object B{
def unapply[T](b: B[T]) = Some(b.name)
}
case class C extends B[Int]("integer")
は今、私は何がBを拡張したよう一覧に発見し、その後printTを使用します。このような何か:ラインcase b @ B(_) => b.printT(2)
で
val list = List(C)
list match{
case b @ B(_) => b.printT(2)
}
私が得た:
Problyfound : Int(2)
required: T where type T
case b @ B(_) => b.printT(2)
^
私はクラスのTを使用するオブジェクトの上にTを関連付けることができれば、この問題が解決されるだろう。これを解決する方法はありますか?
すべての問題を修正しました。私のコードを簡素化していた時、彼らの中には迷っていました。ありがとう:) –