Pracuję nad programem Scala, który wywołuje funkcję z biblioteki Java, przetwarza wyniki i wypisuje plik CSV.Jak mogę przekonwertować mapę map Java do użycia w Scali?
Funkcja Java na pytanie wygląda następująco:
Map<String, Map<String, AtomicLong>> getData();
SCALA:
import scala.collection.JavaConversions._
def analysisAndCsvStuff(data: Map[String, Map[String, AtomicLong]]): Unit { ... }
Błąd:
type mismatch;
found:java.util.Map[java...String,java...Map[java...String,java...AtomicLong]]
required: scala...Map[String,scala...Map[String,java...AtomicLong]]
(Nazwy ścieżek zostały rujnuje formatowanie).
Zgaduję, że JavaConversions może pomyślnie konwertować zewnętrzną mapę Java ... Map, ale nie wewnętrznej java ... Map. Widziałem this question, ale nie jestem pewien, jak napisać "wyraźną niejawną konwersję".
Huzzah! Działa świetnie. Dzięki za szybką i zwięzłą odpowiedź! –
@SamDaniel np :). Zobacz moją aktualizację, mimo że obie wersje są całkowicie poprawne. – gourlaysama
Myślę, że wersja JavaConverters. Skomentowałem połączoną odpowiedź, że ludzie zdecydowanie zalecają używanie asScala. –