我有我使用Scala的內部應用程序一個Java POJO:斯卡拉似乎無法可變地圖轉換成Java地圖
在我的Scala程序:
val ctx : AppRuntimeContext = new AppRuntimeContext()
val ctxMap : Map[String,Fizz] = Map()
// Some code that populates 'ctxMap'
ctx.setContextMap(ctxMap)
這通過將FO
type mismatch; found : scala.collection.mutable.Map[String,com.me.myapp.Fizz] required: java.util.Map[Object,Object]
因此,我試圖轉換ctxMap
到java.util.Map
:產生在setter方法編譯錯誤llowing import語句:
import collection.JavaConversions._
然後通過改變二傳手呼籲:
ctx.setContextMap(mapAsJavaMap(ctxMap))
但是我這樣做的時候我還得到一個編譯錯誤:
type mismatch; found : scala.collection.mutable.Map[String,com.me.myapp.Fizz] required: scala.collection.Map[Object,Object] Note: String <: Object, but trait Map is invariant in type A. You may wish to investigate a wildcard type such as _ <: Object. (SLS 3.2.10)
任何想法是什麼導致這個錯誤和修復是什麼?
請注意,不推薦使用'JavaConversions'。改用'JavaConverters'和顯式調用'.asScala' /'.asJava'。 – maasg