[英]How to build an Scala immutable map from a mutable Java map?
下面的类导致编译器错误:
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
}
}
此行导致错误:
val m2: Map[String, Any] = distanceMap.toMap
错误是因为Map distanceMap的值是可变的java.util.List,所以这些值也需要是不可变的吗?
如何从上面可变的distanceMap构建一个Scala不变地图?
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);
您只是缺少JavaConversions导入。 您的代码将使用以下代码进行编译:
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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.