私はMap[CharSequence, CharSequence]
を返そうとしています。この関数のポイントは、別のマップに特定のキーと値のペアがあるかどうかを確認してから、特定のCharSequenceマップを返すことです。CharSequenceが期待されるときに文字列のスカラマップがコンパイルされない
私はちょうど空のマップ(または文字列マップ)を返す場合、これは
def returnCharSequenceMap(someOtherMap: Option[Map[String,String]]): Map[CharSequence, CharSequence] = {
Map.empty // or something like Map("A" -> "B")
}
をコンパイルしかし、これは私が解読できないことをこのかなり鈍角エラーが出る
def returnCharSequenceMap(someOtherMap: Option[Map[String, String]]): Map[CharSequence, CharSequence] = {
someOtherMap.map { mapRecord =>
case Some("conditionA") =>
Map("a" -> "b")
case Some("conditionB") =>
Map("a" -> "b", "c" -> "d")
case _ => Map.empty
}
}.getOrElse(Map.empty)
のコンパイルに失敗します。
[error] found : scala.collection.immutable.Map[_19,String] where type _19 >: _1 <: CharSequence
[error] required: Map[CharSequence,CharSequence]
[error] Note: _19 <: CharSequence, but trait Map is invariant in type A.
[error] You may wish to investigate a wildcard type such as `_ <: CharSequence`. (SLS 3.2.10)
[error] }.getOrElse(Map.empty)
誰かが間違っていることを指摘できますか?なぜ私が地図を返すことができないのか理解しようとしています。ありがとう!