我正在尝试编写这样的方法:
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)
^
此链接如何从 TypeTag 中获取 ClassTag,或同时获取两者?不澄清我要做什么。看起来像是试图“过滤”一些关于某个类的信息。