Scala 2.8.1隐式转换为java.util.List <java.util.map <string,object =“”>&gt; </java.util.map <string,>

时间:2010-12-20 13:57:07

标签: java scala scala-collections

我使用以下内容创建了Scala数据结构:

List(Map[String, Anyref]("a" -> someFoo, "b" -> someBar))

我想隐式将它(使用scala.collection.JavaConversionsscala.collection.JavaConverters)转换为java.util.List<java.util.Map<String, Object>>,以传递一个需要后者的Java方法。

这可能吗?

我已经创建了以下方法,但是想知道它是否可以由编译器自动完成?

import scala.collection.JavaConversions._
def convertToJava(listOfMaps: List[Map[String, AnyRef]]):
  java.util.List[java.util.Map[String, Object]] = {
  asJavaList(listOfMaps.map(asJavaMap(_)))
}

2 个答案:

答案 0 :(得分:4)

怎么写

implicit def convertToJava...

答案 1 :(得分:4)

你不希望魔法发生这种多级转换。你可以改善自己的转换,至少在美学方面。

import java.{ util => ju }
implicit def convert[K, V](xs: List[Map[K, V]]): ju.List[ju.Map[K, V]] = xs map (x => x: ju.Map[K, V])