Java.util.Map [String、Object]をscala.collection.immutable.Map [String、Any]に変換して、元のマップのすべての値(整数、ブール値など)が正しい値に変換されるようにするにはどうすればよいですか? Scalaでうまく機能します。
VonCが言うように、scala.collections.JavaConversion
は可変コレクションのみをサポートしますが、別のライブラリを使用する必要はありません。可変コレクションは、不変マップを返すTraversableOnce
メソッドを定義するtoMap
から派生します。
import scala.collection.JavaConversions._
val m = new Java.util.HashMap[String, Object]()
m.put("Foo", Java.lang.Boolean.TRUE)
m.put("Bar", Java.lang.Integer.valueOf(1))
val m2: Map[String, Any] = m.toMap
println(m2)
これは出力します
Map(Foo -> true, Bar -> 1)
変換Java.util.Map [String、Object]をscala.collection.immutable.Map [String、Object]に変換するには、Scala Project andcleanで以下のステートメントを単純にインポートする必要があります。ビルドします。
import collection.JavaConversions._
以下のコードを参照してください。
var empMap= Map[String.Object]()
var emp= new Employee(empMap) // Employee is Java POJO in which,passing scala map to overloaded constructor for setting default values.
Scala2.8のJavaConversions
パッケージは、可変コレクションのみを扱います。
scalaj-collection ライブラリがここで役立つ場合があります。
Java.util.Map[A, B] #asScala: scala.collection.Map[A, B]
#asScalaMutable: scala.collection.mutable.Map[A, B]
#foreach(((A, B)) => Unit): Unit