我有一个生成器从一个 Int 中创建一个字符串:
class MyBuilder extends LazyBuilder[Int, String]
{
def result: String = "value: " + Int.toString
}
而这个 CanBuildFrom 实现:
class IntToStringCanBuildFrom extends CanBuildFrom[Set[Int], Int, String]
{
def apply(from: Set[Int]) = this.apply()
def apply() : MyBuilder = new MyBuilder
}
我想在下面的例子中使用它:
val list = List(1, 2, 3)
val result = list.map(2*)(new IntToStringCanBuildFrom)
但我得到一个编译错误:
- type mismatch; found : Test.IntToStringCanBuildFrom required:
scala.collection.generic.CanBuildFrom[List[Int],Int,?]
我在这里到底做错了什么?如何使这项工作?显然它不喜欢我的 CanBuildFrom 实现具有 String 类型参数的事实,但我认为这应该是这样做的方法。