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);
How to build an Scala immutable map from a mutable Java map?
-
11-04-2022 - |
题
The below class causes the compiler error :
value toMap is not a member of
java.util.Map[java.lang.String,java.util.List[com.recommendations.TestObject]]
class ProcessData(var distanceMap : java.util.Map[java.lang.String , java.util.List[TestObject]]) {
def apply = {
val m2: Map[String, Any] = distanceMap.toMap
}
}
This line causes the error :
val m2: Map[String, Any] = distanceMap.toMap
Is the error because the value of Map distanceMap is an mutable java.util.List , hence these values need also be immutable ?
How can I build a Scala immutable map from the mutable distanceMap above ?
解决方案
其他提示
You are simply missing the JavaConversions import. Your code will compile with:
import scala.collection.JavaConversions._
class ProcessData(var distanceMap : java.util.Map[java.lang.String , java.util.List[TestObject]]) {
def apply = {
val m2: Map[String, Any] = distanceMap.toMap
}
}
不隶属于 StackOverflow