我有我使用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