Я пытаюсь смешать черту MultiMap
с HashMap
примерно так:
val children:MultiMap[Integer, TreeNode] =
new HashMap[Integer, Set[TreeNode]] with MultiMap[Integer, TreeNode]
Определение черты MultiMap
:
trait MultiMap[A, B] extends Map[A, Set[B]]
То есть, что MultiMap
типов A
& B
- это Map
типов A
& Set[B]
, или мне так кажется. Однако компилятор жалуется:
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
Кажется, что дженерики снова меня сбивают с толку.