Как написать пользовательский метод ++ = для моего пользовательского mutable.HashMap - PullRequest
2 голосов
/ 01 мая 2019

Я написал карту, как показано ниже, моя реализация mutable.HashMap.

class SampleMap() extends mutable.HashMap[String, (Any, BigInt)]

И переопределение + = метод отображения и остальные методы используются из суперкласса, не переопределяемого.Ниже работает отлично.

override def +=(kv: (String, (Any, BigInt))): this.type = {/*compiled code*/}

Теперь я хочу написать свою собственную реализацию метода ++ =, которая унаследована от расширяемого класса Map.когда я пишу переопределенный метод ++ =, компилятор не жалуется на переопределение.

override def ++=(currentMap: MergeMap): this.type  = {

Как написать пользовательскую реализацию этого метода для моей пользовательской карты.

1 Ответ

5 голосов
/ 01 мая 2019

попробуйте переопределить scala.collection.generic.Growable.++= метод:

class SampleMap() extends mutable.HashMap[String, (Any, BigInt)] {
  override def ++=(xs: TraversableOnce[(String, (Any, BigInt))]): this.type = {
    this
  }
}

, тогда хорошо работает:

def main(args: Array[String]): Unit = {
    new SampleMap() ++= mutable.HashMap.empty[String, (Any, BigInt)]
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...