Проблема несоответствия типа Scala (ожидаемая карта, обнаружена scala.collection.mutable.HashMap)

Я все еще новичок в программировании на Scala, извините, если этот вопрос может показаться наивным, но я некоторое время искал и не нашел решения. Я использую Scala 2.8, и у меня есть класс PXGivenZ, определенный как:

class PXGivenZ (val x:Int, val z:Seq[Int], val values: Map[Seq[Int], Map[Int, Double]] ){...}

Когда я пытаюсь создать экземпляр элемента этого класса в другом блоке программы, подобном этой:

// 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)

, я получаю следующую ошибку:

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) 
                                             ^

Имеется ясно, что я чего-то не понимаю: чем Map [Seq [Int], Map [Int, Double]] отличается от HashMap [Seq [Int], HashMap [Int, Double]]? Или что-то не так с "изменяемыми" классами?

Заранее спасибо всем, кто мне поможет!

14
задан Alberto 19 August 2011 в 13:50
поделиться