Nadal jestem początkującym programistą Scala, więc przepraszam, jeśli to pytanie może wyglądać naiwnie, ale szukałem przez chwilę i nie znalazłem żadnych rozwiązań. Używam Scala 2.8, i mam PXGivenZ klasa zdefiniowana jako:Problem niedopasowania typu scala (oczekiwana mapa, znaleziona scala.collection.mutable.HashMap)
class PXGivenZ (val x:Int, val z:Seq[Int], val values: Map[Seq[Int], Map[Int, Double]]){...}
Kiedy próbuję instancji element tej klasy do innego bloku programu jak ten:
// 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)
otrzymuję następujący błąd:
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)
^
jest wyraźnie coś, czego nie rozumiem: jak jest mapa [SEK [Int], mapa [Int, Double]] różni się od HashMap [SEK [Int], HashMap [Int ,Podwójnie]]? Czy coś jest nie tak z klasami "zmiennymi"?
Z góry dziękuję wszystkim, którzy mi pomogą!
Dzięki! To rozwiązało problem :-) – Alberto
'HashMap' może być zmienny lub niezmienny. Zmienna wersja musi zostać zaimportowana. –