1

次のように作成された Scala データ構造があります。

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

暗黙的scala.collection.JavaConversionsに ( orを使用してscala.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(_)))
}
4

2 に答える 2

4

書いてみませんか

implicit def convertToJava...

于 2010-12-20T14:02:51.643 に答える
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])
于 2010-12-21T05:28:39.887 に答える