Frage

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 ?

War es hilfreich?

Lösung

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);

Andere Tipps

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
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top