concatenate java scala scala-collections

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)