Function 将类型信息传递给Scala中的函数
我有一些代码可以对json对象执行一些常见操作,即提取。因此,我想创建一个泛型函数,该函数接受类型参数,该参数是预期的类,代码如下所示:Function 将类型信息传递给Scala中的函数,function,scala,types,Function,Scala,Types,我有一些代码可以对json对象执行一些常见操作,即提取。因此,我想创建一个泛型函数,该函数接受类型参数,该参数是预期的类,代码如下所示: def getMessageType[T](json: JValue): Either[GenericError,T] = { try { Right(json.extract[T]) } catch { case e: MappingException => jsonToError(json) } } 问题是如何将T信息传
def getMessageType[T](json: JValue): Either[GenericError,T] = {
try {
Right(json.extract[T])
} catch {
case e: MappingException => jsonToError(json)
}
}
问题是如何将T信息传递给该函数?如果您查看:您将看到它需要
清单
隐式:
def extract[A](json: JValue)
(implicit formats: Formats, mf: Manifest[A]): A
这可以通过将“type”作为一个值来避免JVM类型擦除。为了你的
凯斯,我想你也应该这么做:
def getMessageType[T](json: JValue)
(implicit f: Formats, mf: Manifest[T]): T =
{
json.extract[T]
}
这:
提取