Ich benutze eine Menge von Scala-Maps, gelegentlich möchte ich sie in als eine Karte zu einem Legacy-Java-Api übergeben, die eine java.util.Map will (und ich kümmere mich nicht, wenn es alle Änderungen wegwirft).
Antworten
Zu viele Anzeigen?Ich habe eine ausgezeichnete Bibliothek gefunden, die diese Aufgabe besser erfüllt:
http://github.com/jorgeortiz85/scala-javautils
(schlechter Name, großartige Bibliothek). Sie rufen explizit .asJava oder .asScala auf, je nachdem, in welche Richtung Sie gehen wollen. Keine Überraschungen.
Scala bietet Wrapper für Java-Sammlungen, so dass diese als Scala-Sammlungen verwendet werden können, aber nicht umgekehrt. Davon abgesehen wäre es wahrscheinlich nicht schwer, einen eigenen Wrapper zu schreiben, und ich bin sicher, dass er für die Community nützlich wäre. Diese Frage taucht regelmäßig auf.
Diese Frage und Antwort über genau dieses Problem und die möglichen Lösungen diskutieren. Er rät von transparenten Konvertierungen ab, da sie sehr seltsame Nebenwirkungen haben können. Er befürwortet die Verwendung von scala-javautils stattdessen. Ich verwende sie seit einigen Monaten in einem großen Projekt und habe festgestellt, dass sie sehr zuverlässig und einfach zu verwenden sind.