如何隐式传递类清单的返回值

时间:2014-12-16 13:29:34

标签: json scala json4s

假设我在下面定义了泛型函数:

def convert[R](json: String)(implicit m: Manifest[R]): R =
  parse(json).extract[R]

我不确定调用此函数的正确语法是什么?我试过了:

 convert(json).asInstanceOf[MyClass]

似乎正确编译但在我尝试提取json时遇到异常。我可以通过定义以下代码来正常工作:

def convert[R](json: String)(cb: R => Unit)(implicit m: Manifest[R]) =
  cb(parse(json).extract[R])

然后执行以下操作:

 convert(json) { ret: MyClass => // }

但这不是合适的解决方案。

1 个答案:

答案 0 :(得分:2)

尝试convert[MyClass](json);这是显式指定类型参数的语法。允许通过将类型置于其给定的上下文中来推断类型,例如convert(json): MyClass,也可以起作用。