如何为自定义Scala集合实现newBuilder

如题所述

第1个回答  2017-11-16
由于 mucaho 帮助我在上述评论中发现,结果是我的问题是由缺少访问修饰符。关于差异的错误消息仍然对我没有意义(我已经打开了一个关于它的新问题:为什么scalac只发出方差错误与某些访问修饰符?),但是当我覆盖 newBuilder 具体实现访问 protected [this]

import scala.collection.mutable.Builder
import scala.collection.TraversableLike
import scala.concurrent.Future

trait AsyncMap [A,+ B]
extends Traversable [(A,B)]
with TraversableLike [(A,B),AsyncMap [A,B]]
{
def empty:AsyncMap [A,B]

def get(key:A):Future [Option [B]]

def + [B1>:B](kv:(A,B1)):AsyncMap [A ,B1]

//这样工作!
override protected [this] def newBuilder:Builder [(A,B),AsyncMap [A,B]] =?
}