【发布时间】:2016-08-02 20:46:41
【问题描述】:
我正在尝试构建以下内容
我有一个父泛型类
abstract class ResultProvider[+T: Writes](db: DB) {
def get(id: Long): Future[Seq[T]]
}
还有一些实现,例如
class LengthProvider(db: DB) extends ResultProvider[LengthResult](db){
override def get (userId: Long): Future[Seq[LengthResult]] = ...
}
object LengthProvider extends ((DB) => DisciplinePredictor) {
override def apply(db: DB) = new LengthProvider(db)
}
我有以下配置图:
val providers: Map[String, ((DB) => ResultProvider[???])] = Map(
"length" -> LengthProvider,
"width" -> WidthProvider,
...
)
我的问题是我应该用什么代替???。理想情况下,它应该类似于T : Writes,因为我只关心这种类型是否实现了Writes 隐式实现,因为我将使用Json.toJson 它。它将使用Any 进行编译,但是该类应该实现Writes 隐式的信息丢失了。
还是我应该使用不同的方法?我可能可以为我所有的结果案例类创建一个超类(例如LengthResult),但我想摆脱隐含。
【问题讨论】:
-
@AlexanderArendar 这根本不是我们想要的。
标签: scala playframework playframework-2.0 scala-implicits