我认为我们可以依靠隐式转换将scala.Double
转换为java.lang.Double
。所以我尝试了以下方法:将Map [String,Double]转换为java.util.Map [String,java.lang.Double]
import scala.collection.JavaConverters._
object Main extends App {
def main(args: Array[String]) = {
val m = Map("10" -> 20.0)
doSome(m.asJava) //error. Type mismatch found: java.util.Map[String,scala.Double]
// required: java.util.Map[String,java.lang.Double]
doSome2(m.asJava)
}
def doSome(m: java.util.Map[java.lang.String, java.lang.Double]) = println(m)
def doSome2(m: java.util.Map[java.lang.String, Double]) = println(m)
}
为什么不起作用?执行这种转换的惯用方法是什么?
'asInstanceOf'不会让您将Scala地图转换为Java地图。 –