我正在尝试在 Scala 中扩展一组整数。根据较早的答案,我决定使用 SetProxy 对象。我现在正在尝试实现《Scala 编程newBuilder
》第二版第 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())
^
这对我来说很神秘。我已经尝试了有问题的值的各种变化,但它们都不起作用。我该如何编译?
除了在 Scala 中编程之外,我还浏览了类似这样的各种 StackOverflow 帖子,但仍然一头雾水。