【发布时间】:2016-06-09 20:03:34
【问题描述】:
我正在尝试编写这样的方法:
def foo[T:TypeTag](value: Int):String = {
(/* do something */).mapTo[T].map(_.toJson)
}
mapTo 的签名在哪里:
def mapTo[S](implicit tag: ClassTag[S]): Future[S] = { ... }
使用org.scala-lang.scala-reflect 能够执行以下操作:
foo[String](1)、foo[List[Double]](10) 等等。
我尝试以不同的方式编写它,但我得到了不同的编译错误。 有什么办法可以让这样的东西发挥作用吗?
Error:(26, 45) Cannot find JsonWriter or JsonFormat type class for T
(/* do something */).mapTo[T].map(_.toJson)
^
Error:(26, 45) not enough arguments for method toJson: (implicit writer: spray.json.JsonWriter[T])spray.json.JsValue.
Unspecified value parameter writer.
(/* do something */).mapTo[T].map(_.toJson)
^
此链接How to get ClassTag form TypeTag, or both at same time? 没有说明我要做什么。看起来像是试图“过滤”一些关于某个类的信息。
【问题讨论】:
-
我无法从您的建议中得到答案。
标签: scala scala-reflect