将java.util.Map [String,Object]转换为scala.collection.immutable.Map [String,Any]

Itt*_*ayD 27 java scala scala-collections

如何将java.util.Map [String,Object]转换为scala.collection.immutable.Map [String,Any],以便将原始映射中的所有值(整数,布尔值等)转换为正确的值在Scala工作得很好.

Mic*_*mer 35

正如VonC所说,scala.collections.JavaConversion仅支持可变集合,但您不必使用单独的库.从中派生出可变集合TraversableOnce,定义了一个toMap返回不可变Map的方法:

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)
Run Code Online (Sandbox Code Playgroud)

这将输出

Map(Foo -> true, Bar -> 1)
Run Code Online (Sandbox Code Playgroud)