[英]Scala context bounds “imitation” for abstract type parameters
我需要将json解析为几个可能的案例类:
trait Request {...}
case class RequestOne(...) extends Request
case class RequestTwo(...) extends Request
我创建了一个请求包装器:
trait RequestModel {
type T <: Request
def parse(input: JValue): T = input.extract[T]
}
object RequestOneModel extends RequestModel {
type T = RequestOne
}
object RequestTwoModel extends RequestModel {
type T = RequestTwo
}
想到让类型为[T]的RequestModel解析到它们内部。
上面的代码抛出“没有可供RequestModel.this.T使用的清单”。
尝试向方法添加隐式参数
trait RequestModel {
type T <: Request
def parse(input: JValue)(implicit manifest: Manifest[T]): T = input.extract[T]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.