簡體   English   中英

Scala 2.8.1隱式轉換為java.util.List <java.util.Map<String, Object> &gt;

[英]Scala 2.8.1 implicitly convert to java.util.List<java.util.Map<String, Object>>

我有一個使用以下代碼創建的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(_)))
}

寫作怎么樣

implicit def convertToJava...

您不希望魔術發生這種多級轉換。 不過,至少在美學上,您可以根據自己的轉換進行一些改進。

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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM