從Java API我得到如何將java Map轉換爲scala LinkedHashMap類型的地圖[String,ArrayList [String]]?
java.util.LinkedHashMap[String,java.util.ArrayList[String]]
,然後我需要作爲參數傳遞給Scala程序
val rmap = Foo.baz(parameter)
這個參數是斯卡拉類型:
Map[String,List[String]]
那麼如何我可以輕鬆轉換
java.util.LinkedHashMap[String,java.util.ArrayList[String]]
到
Map[String,List[String]]
我試圖用進口scala.collection.JavaConversions._但對我來說,這並不工作(或者至少,這是我猜的),因爲Scala代碼是在模板功能,我只能在函數中放置導入scala.collection.JavaConversions._。 模板函數是這樣的:
def someFunc(param: java.util.LinkedHashMap[String,java.util.ArrayList[String]]) = {
import scala.collection.JavaConversions._
val rmap = Foo.baz(param) // param is of scala type Map[String,List[String]]
.......
現在Scala是不是自動的Java類型轉換爲Scala的類型。
這是我得到的編譯器錯誤: 引發的錯誤是:type mismatch;發現:java.util.LinkedHashMap中[字符串,java.util.ArrayList中的[字符串]要求:地圖[字符串,列表[字符串]
「顯式隱式轉換」。 <3斯卡拉。 :) – tsuna