gpt4 book ai didi

scala - 为什么 TypeTag 没有方法 runtimeClass 但 Manifest 和 ClassTag 有

转载 作者:行者123 更新时间:2023-12-04 18:06:21 26 4
gpt4 key购买 nike

我有这段代码可以将字符串一般地转换为 Dto,如果我使用 Manifest 和 ClassTag,我可以使用方法 运行时类 获取运行时类,但 TypeTag 没有这个方法

class ObjectMapper[T] {

def readValue(x: String, t: Class[T]): T = ???
}

class Reader {
def read[W: Manifest](x: String): W = {
val mapper = new ObjectMapper[W]
mapper.readValue(x, implicitly[Manifest[W]].runtimeClass.asInstanceOf[Class[W]])
}

}

我可以知道为什么 TypeTag 没有方法 runtimeClass

提前谢谢了

最佳答案

假设 TypeTag来自 scala.reflect.runtime.universe ,你可以得到这样的类:

def runtimeClass(tag: TypeTag) = tag.mirror.runtimeClass(tag.tpe)

它没有这种方法,因为并非所有 TypeTag s 来自运行时 Universe。

关于scala - 为什么 TypeTag 没有方法 runtimeClass 但 Manifest 和 ClassTag 有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com