我有一个值的List[Any]和一个对应的ClassManifest[_]的列表,用于存储值的原始类型。我如何将列表中的某些值转换回其原始类型?
def cast[T](x: Any, mf: ClassManifest[T]): T = x.asInstanceOf[T]不起作用。

谢谢您的回答。

最佳答案

这永远不可能,因为cast的返回类型将始终被视为T所限制的最高 public super class 型。不可能在编译时使其更加具体。

如果您试图建立一个完全不同类型的强类型集合,那么您真正想要的是一个HList:

http://jnordenberg.blogspot.com/2008/09/hlist-in-scala-revisited-or-scala.html

10-08 07:15