如何将泛型类型应用于Scala中的另一个泛型类

时间:2015-09-17 20:28:10

标签: scala generics

Slick ORM中有一个名为TableQuery的类。它的伴随对象有apply方法:

def apply[E <: AbstractTable[_]]: TableQuery[E] =
macro TableQueryMacroImpl.apply[E]

我有类扩展表,扩展了AbstractTable,所以我可以这样写:

class Users(tag: Tag) extends Table[User](tag, "users") {..some code..}
val query = TableQuery[Users]

我想概括使用数据库,所以我创建了Dao类

class Dao[A, B <: AbstractTable[A]] {
   private val query = TableQuery[B]
}

这里的编译器说:“需要类类型但是找到了B”。当我将B&lt ;: AbstractTable [A]更改为B:ClassTag时,它也不会运行。

那么我必须使用什么泛型类型将它发送到TableQuery?

0 个答案:

没有答案