Javaの地図に変更可能なマップを変換するように見えることはできませんsetterメソッドのコンパイラエラーを生成します。Scalaは私がScalaのアプリ内で使用していたJava POJOを持って
type mismatch; found : scala.collection.mutable.Map[String,com.me.myapp.Fizz] required: java.util.Map[Object,Object]
だから私はFOを追加することによって、java.util.Map
にctxMap
を変換してみてください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)
任意のアイデアが何でありますかこのエラーの原因と修正点は何ですか?それが準拠していないオブジェクトを置くことが可能だろうが、より良い1は、おそらく最初の場所でMap[Object, Object]
としてctxMap
を宣言するだろう
ctx.setContextMap(mapAsJavaMap(ctxMap.asInstanceOf[mutable.Map[Object, Object]]))
:
「JavaConversions」の使用は推奨されていません。代わりに 'JavaConverters'と明示的な' .asScala'/'.asJava'を使用してください。 – maasg