如何为我的自定义mutable.HashMap编写自定义方法++ =

时间:2019-05-01 09:56:04

标签: scala java-8

我像下面那样编写地图,实现了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  = {

如何为我的自定义Map编写此方法的自定义实现。

1 个答案:

答案 0 :(得分:5)

尝试覆盖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)]
  }