Scala 谜题
在 Scala 中,List[String] 和 List[Int] 之间并没有继承关系,但是下面的代码竟然可以通过编译并且顺利运行: object Test extends App { val strList: List[String] = List("a", "b", "c") val strToIntList: List[Int] = strList.asInstanceOf[List[Int]] println(strToIntList) } 输出: //输出: List(a, b, c) 是的,你没看错!我们把 List[String] 成功的转换成了 List[Int] 类型。事实上真的是这样吗? 让我们来测试一下: object Test extends App { val strList: List[String] = List("a", "b", "c") val strToIntList: List[Int] = strList.asInstanceOf[List[Int]] val head = strToIntList(0) println(head) } 输出: Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java