Implizite Konvertierung zwischen Java- und Scala-Sammlungen mit JavaConversions

Ich habe eine Waage zusammengeführtSet von scalaMaps mit einer generischen Funktion

def mergeMaps[A, B](ms: Set[Map[A, B]])(f: (B, B) => B): Map[A, B] =
(Map[A, B]() /: (for (m <- ms; kv <- m) yield kv))
{
  (a, kv) =>
  a + (if (a.contains(kv._1)) kv._1 -> f(a(kv._1), kv._2) else kv)
}

Dies behandelt den Fall, wenn die gleichen Tasten aufeinander treffen. Ich wollte es jedoch mit Java-Sammlungen in Scala Code machen. Ich habe ein bisschen recherchiert und bin auf @ gestoßJavaConversions. Ich habe es importiert und dieses @ geschrieb

def mergeMaps[A, B](ms: Set[Map[A, B]])(f: (B, B) => B): Map[A, B] =
(new util.HashMap[A, B] /: (for (m <- ms; kv <- m) yield kv))
{
  case (a, kv) =>
    a + (if (a.contains(kv._1)) kv._1 -> f(a(kv._1), kv._2) else kv)
}

s heißt jedoch, dass es eine Typinkongruenz gib

Error:(67, 11) type mismatch;
found   : scala.collection.mutable.Map[A,B]
required: java.util.HashMap[A,B]
    a + (if (a.contains(kv._1)) kv._1 -> f(a(kv._1), kv._2) else kv)
      ^

Ist nichtJavaConversions wird verwendet, um implizit @ zu konvertierutil.HashMap zumutable.Map? Was vermisse ich hier?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage