【发布时间】:2017-07-18 16:43:44
【问题描述】:
我正在处理混合 Java-Scala 项目,并且经常需要转换集合。
当我想转换一组原语时,我应该写这样的东西
val coll: Seq[Int] = Seq(1, 2, 3)
import scala.collection.JavaConverters._
val jColl = coll.map(v => Int.box(v)).asJava
但是,我知道 Java 和 Scala 泛型集合都使用装箱值,因此我可以安全地避免使用不必要的装箱进行迭代,而只需编写
val jColl = coll.asJava.asInstanceOf[java.util.List[java.lang.Integer]]
但是,如果我在集合类型或元素类型中出错,编译器不会抱怨。
有没有一种类型安全的方法来避免额外的迭代?至少有一种方法可以检查集合类型吗?
【问题讨论】:
-
为什么不
.asScala?
标签: java scala type-safety scala-java-interop