我像下面那样编写地图,实现了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编写此方法的自定义实现。
答案 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)]
}