scala> val arr = Array[Any](Array(1.0, 2.0))
arr: Array[Any] = Array(Array(1.0, 2.0))
scala> arr(0)
res28: Any = Array(1.0, 2.0)
数组arr
是固定的。在这种情况下如何将arr(0)
更改为Array[Double]
?
答案 0 :(得分:3)
共有三个选项:
1)首先不要投射到Array[Any]
:
val arr: Array[Array[Double]] = Array(Array(1.0, 2.0))
val arr0: Array[Double] = arr(0)
2)使用match
:
val arr0: Array[Double] = arr(0) match {
case a: Array[Double] => a
}
3)使用asInstanceOf
:
val arr0: Array[Double] = arr(0).asInstanceOf[Array[Double]]
这些按优先顺序排列,到目前为止,选项1是最好的解决方案,因为它避免了丢弃类型信息。