Sono ancora un principiante programmatore Scala, mi dispiace se questa domanda può sembrare ingenua, ma ho cercato un po 'e non ho trovato soluzioni. Sto usando Scala 2.8, e ho una PXGivenZ classe definita come:Problema di disallineamento tipo Scala (mappa prevista, trovato scala.collection.mutable.HashMap)
class PXGivenZ (val x:Int, val z:Seq[Int], val values: Map[Seq[Int], Map[Int, Double]]){...}
Quando provo creare un'istanza di un elemento di quella classe in un altro blocco del programma come questo:
// x is an Int
// z is a LinkedList of Int
...
var zMap = new HashMap[Seq[Int], HashMap[Int, Double]]
...
val pxgivenz = new PXGivenZ(x, z, zMap)
ho la seguente errore:
found : scala.collection.mutable.HashMap[Seq[Int],scala.collection.mutable.HashMap[Int,Double]]
required: Map[Seq[Int],Map[Int,Double]]
val pxgivenz = new PXGivenZ(x, z, zMap)
^
C'è chiaramente qualcosa che non capisco: come è una mappa [Seq [Int], mappa [int, double]] diverso da un HashMap [Seq [Int], HashMap [Int ,Doppio]]? O c'è qualcosa di sbagliato nelle classi "mutabili"?
Grazie in anticipo a chiunque mi aiuti!
Grazie! Questo ha risolto il problema :-) – Alberto
'HashMap' può essere mutevole o immutabile. La versione mutabile deve essere stata importata. –