将 java.util.Map[String, Object] 转换为 scala.collection.immutable.Map[String, Any]
2022-09-01 14:27:32
如何将java.util.Map[String,Object]转换为scala.collection.immutable.Map[String,Any],以便原始映射中的所有值(整数,布尔值等)都转换为正确的值,以便在Scala中正常工作。
如何将java.util.Map[String,Object]转换为scala.collection.immutable.Map[String,Any],以便原始映射中的所有值(整数,布尔值等)都转换为正确的值,以便在Scala中正常工作。
正如VonC所说,仅支持可变集合,但您不必使用单独的库。可变集合派生自,它定义了返回不可变 Map 的方法: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)
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