我有以下课程:
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 了。我将如何解决这个问题?