繁体   English   中英

如何从可变Java映射构建Scala不变映射?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM