私は次のクラスを持っています:
abstract class Record {}
class Record1 extends Record {}
class Record2 extends Record {}
class MyTable[T <: Record : Manifest] extends externalLibrary.Table[T] {
def method {}
}
object MyTable1 extends MyTable[Record1] {}
object MyTable2 extends MyTable[Record2] {}
そして今、メソッドパラメーターで MyTable サブクラスを受け入れようとしています
def testMethod[T <: MyTable[Record]](t: T) {
t.method
}
val test = method(MyTable1)
これにより、MyTable1 が T に準拠していないというエラーが生成されます。メソッドを次のように変更すると[T >: MyTable[Record]]
、これは呼び出しポイントで型チェッカーを満たしますが、もちろん t.method にアクセスできなくなります。この問題を解決するにはどうすればよいですか?