【发布时间】:2012-10-19 04:59:52
【问题描述】:
我最近使用了一些 Java 集合(众所周知的 JavaFX),但我最近遇到了一个问题(这是 here 发布的另一个问题的结果)。我需要的 JavaFX 接口之一只接受 java.util.Map,等于 Scala 中的 Map[_,_]。
我使用asInstanceOf 进行转换,但在计算之后,如果我想转换我的java.util.Map[_,_] 以强制转换为真正的Scala 类型安全Map[String,Double] 我在我的所有程序中使用,我该怎么做?
我尝试了java.conversions._ 和asInstanceOf 方法但没有成功。
//return a java.util.Map
val row: java.util.Map[_,_] = c.getTableView().getItems().get(0)
//I need a Map[String,Double] in my program
val parameters = row.toMap[String,Double]
【问题讨论】:
-
import collection.JavaConverters; row.asInstanceOf[java.util.Map[String,Double]].asScala工作吗? -
import collection.JavaConverters._,不是@LuigiPlinge吗?
-
我的类型不匹配,但它似乎是解决方案的开始!
found : scala.collection.mutable.Map[String,Double] required: scala.collection.immutable.Map[String,Double] -
如果我添加这样的
toMap指令,row.asInstanceOf[java.util.Map[String,Double]].asScala.toMap,它可以工作,谢谢 :)
标签: java scala casting type-conversion scala-collections