преобразуйте java.util. Карта [Строка, Объект] к scala.collection.immutable. Карта [Строка, Любой]

Как я преобразовываю java.util. Карта [Строка, Объект] к scala.collection.immutable. Карта [Строка, Любой], так, чтобы все значения в исходной карте (целые числа, булевские переменные и т.д.) были преобразованы в правильное значение для работы хорошо в Scala.

27
задан Eugene Yokota 15 December 2010 в 22:43
поделиться

2 ответа

Как говорит VonC, scala.collections.JavaConversion поддерживает только изменяемые коллекции, но у вас их нет использовать отдельную библиотеку. Изменяемые коллекции получены из TraversableOnce , который определяет метод toMap , который возвращает неизменяемую карту:

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)

Это выведет

Map(Foo -> true, Bar -> 1)
35
ответ дан 28 November 2019 в 05:32
поделиться

Пакет JavaConversions в Scala2.8 работает только с изменяемыми коллекциями.

Здесь может помочь библиотека scalaj-collection .

java.util.Map[A, B]       #asScala: scala.collection.Map[A, B]
                          #asScalaMutable: scala.collection.mutable.Map[A, B]
                          #foreach(((A, B)) => Unit): Unit
1
ответ дан 28 November 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: