我想延长一组斯卡拉整数。 基于一个较早的答案我已经决定使用SetProxy对象。 我现在想实现newBuilder
如在Scala编程第二版的第25章所描述的机制和时遇到麻烦。 具体来说,我想不出来指定到什么参数SetBuilder
对象。 以下是我都试过了。
package example
import scala.collection.immutable.{HashSet, SetProxy}
import scala.collection.mutable
case class CustomSet(override val self: Set[Int]) extends SetProxy[Int] {
override def newBuilder[Int, CustomSet] =
new mutable.SetBuilder[Int, CustomSet](CustomSet())
}
object CustomSet {
def apply(values: Int*): CustomSet = CustomSet(HashSet(values.toSeq: _*))
}
这不编译。 以下是错误。
scala: type mismatch;
found : example.CustomSet
required: CustomSet
override def newBuilder[Int, CustomSet] = new mutable.SetBuilder[Int, CustomSet](CustomSet())
^
这是神秘的给我。 我试着对有问题的值的各种变化,但他们没有工作。 如何使这个编译?
除了编程在斯卡拉我已经通过各种StackOverflow的岗位看上去像这一个 ,但仍迷惑不解。