ちょうど.toMap
を呼び出してみませんか? toMap
を呼び出すことなく、JavaConversions
だけあなたが暗黙のうちに可変 Scalaのマップに変換することができます
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()
:
scala> val z: collection.mutable.Map[Int,Int] = x
z: scala.collection.mutable.Map[Int,Int] = Map()
それだけでScalaで表現されなければならないので、JavaのMap
は、変更可能であるので、おそらくこれは明示的にimmutable.Map
に変換するまでmutable.Map
としてください。
scala> Map()
res0: scala.collection.immutable.Map[Nothing,Nothing] = Map()
あなたがrequest.getParameterMap.asInstanceOf[Map[String, Array[String]]]
を言うときので、あなたが本当に暗黙的にJavaのを変換するためのScalaを求めている:あなたはちょうどScalaではMap
を言うとき、あなたは本当にそのようにMap
Predef
エイリアスてから約collection.immutable.Map
を話していることを
注意Map
をScalaのcollection.immutable.Map
に追加します。これは、JavaのMap
が変更可能であるため実行したくありません。
出典
2012-04-06 17:31:54
dhg