java - concatenate - scala mutable collections
convertir java.util.Map[String, Object] a scala.collection.immutable.Map (3)
¿Cómo convierto java.util.Map [String, Object] a scala.collection.immutable.Map [String, Any], para que todos los valores en el mapa original (enteros, booleanos, etc.) se conviertan al valor correcto a Funciona bien en Scala.
El paquete JavaConversions
de Scala2.8 trata solo con colecciones mutables.
La scalaj-collection podría ayudar aquí.
java.util.Map[A, B] #asScala: scala.collection.Map[A, B]
#asScalaMutable: scala.collection.mutable.Map[A, B]
#foreach(((A, B)) => Unit): Unit
Para convertir convert java.util.Map [String, Object] a scala.collection.immutable.Map [String, Object], es necesario que importe la siguiente declaración en el Proyecto Scala y limpie la compilación.
import collection.JavaConversions._
Consulte el siguiente código:
var empMap= Map[String.Object]()
var emp= new Employee(empMap) // Employee is java POJO in which,passing scala map to overloaded constructor for setting default values.
Como dice VonC, scala.collections.JavaConversion
admite colecciones mutables, pero no tiene que usar una biblioteca separada. Las colecciones mutables se derivan de TraversableOnce
que define un método toMap
que devuelve un Mapa inmutable:
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)
Esto dará salida
Map(Foo -> true, Bar -> 1)