直接打电话怎么样.toMap?
import collection.JavaConversions._
val x = java.util.Collections.unmodifiableMap[Int,Int](new java.util.HashMap[Int,Int]())
val y: Map[Int,Int] = x.toMap //y: Map[Int,Int] = Map()
不调用toMap,JavaConversions仅允许您隐式转换为可变Scala 映射:
scala> val z: collection.mutable.Map[Int,Int] = x
z: scala.collection.mutable.Map[Int,Int] = Map()
这大概是因为 JavaMap是可变的,所以它应该只在 Scala 中表示为 a mutable.Map,直到您将它显式转换为immutable.Map.  
请注意,当您只是Map在 Scala 中说时,您实际上是在谈论collection.immutable.Map因为Predef别名Map是这样的:
scala> Map()
res0: scala.collection.immutable.Map[Nothing,Nothing] = Map()
因此,当您说 时request.getParameterMap.asInstanceOf[Map[String, Array[String]]],您实际上是在要求 Scala 将 Java 隐式转换Map为 Scala ,因为 Java是可变的collection.immutable.Map,所以它不想这样做。Map