在未知的java.util.Map类型上强制Java到Scala显式类型转换

rey*_*n64 3 java casting scala type-conversion scala-collections

我最近使用过一些Java集合(熟悉JavaFX),最近我遇到了一个问题(这里发布另一个问题的结果).我只需要接受一个JavaFX接口java.util.Map,等同Map[_,_]于Scala.

我进行了转换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]
Run Code Online (Sandbox Code Playgroud)

mon*_*ack 6

这适合我

val javaMap : java.util.Map[_, _] = null
val scalaMap = javaMap.asScala.toMap.asInstanceOf[Map[String, Double]]
Run Code Online (Sandbox Code Playgroud)

记得包括

import scala.collection.JavaConverters._
Run Code Online (Sandbox Code Playgroud)