相关疑难解决方法(0)

带参数化类型的Scala asInstanceOf

我想编写一个转换为类型A的函数,其中A可以是例如List [Int],或者更复杂的参数化类型,如Map [Int,List [Int]].

def castToType[A](x: Any): A = {
  // throws if A is not the right type
  x.asInstanceOf[A]
}
Run Code Online (Sandbox Code Playgroud)

现在,由于类型擦除(我相信),即使类型不正确,代码也会愉快地工作.该错误仅在访问时显示,具有ClassCastException.

val x = List(1, 2, 3)
val y = castToType[List[String]](x)
y(0) --> throws java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用清单来使这项工作正常进行?谢谢!

scala

30
推荐指数
3
解决办法
4万
查看次数

标签 统计

scala ×1