Следующий класс вызывает ошибку компилятора:
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, поэтому эти значения также должны быть неизменными?
Как я могу построить неизменяемую карту 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
}
}