Io lavoro su un programma Scala che chiama una funzione da una libreria Java, elabora i risultati e sputa un CSV.Come posso convertire una mappa Java di mappe per l'uso in Scala?
La funzione Java in questione si presenta così:
Map<String, Map<String, AtomicLong>> getData();
La Scala:
import scala.collection.JavaConversions._
def analysisAndCsvStuff(data: Map[String, Map[String, AtomicLong]]): Unit { ... }
L'errore:
type mismatch;
found:java.util.Map[java...String,java...Map[java...String,java...AtomicLong]]
required: scala...Map[String,scala...Map[String,java...AtomicLong]]
(I nomi di percorso stavano rovinando la formattazione.)
Immagino che JavaConversions possa convertire correttamente la java esterna ... Mappa ma non la java interna ... Mappa. Ho visto this question ma non sono sicuro di come scrivere una "conversione implicita esplicita".
Huzzah! Funziona perfettamente. Grazie per la risposta rapida e concisa! –
@SamDaniel np :). Vedi il mio aggiornamento, anche se entrambe le versioni sono perfettamente valide. – gourlaysama
Penso che la versione di JavaConverters. Ho commentato la risposta collegata che la gente consiglia vivamente di utilizzare asScala. –