Estoy tratando de mixin el rasgo MultiMap
con un HashMap
así:MultiMap en Scala
val children:MultiMap[Integer, TreeNode] =
new HashMap[Integer, Set[TreeNode]] with MultiMap[Integer, TreeNode]
La definición para el rasgo MultiMap
es:
trait MultiMap[A, B] extends Map[A, Set[B]]
sentido de que un MultiMap
de tipos A
& B
es Map
de tipos A
& Set[B]
, o eso me parece. Sin embargo, el compilador se queja:
C:\...\TestTreeDataModel.scala:87: error: illegal inheritance; template $anon inherits different type instances of trait Map: scala.collection.mutable.Map[Integer,scala.collection.mutable.Set[package.TreeNode]] and scala.collection.mutable.Map[Integer,Set[package.TreeNode]]
new HashMap[Integer, Set[TreeNode]] with MultiMap[Integer, TreeNode]
^one error found
Parece que los genéricos me están volviendo a tropezar.
En realidad es scala.collection._ :-) – fikovnik
Tienes razón! Reparado, muchas gracias. – Calum