Scala中的Iterable Trait方法缺少参数类型错误。

时间:2014-08-16 03:35:05

标签: scala iterable

我可以将类类型存储在数组中并从中创建实例。

class A
val keys = Array[Class[_]](classOf[A])
keys(0).newInstance
> res130: Any = A@339319d

但是,当我尝试使用Iterable Trait方法时,我会错过参数类型错误。

keys.zipWithIndex { case (t, i) => t.newInstance }

error: missing parameter type for expanded function
The argument types of an anonymous function must be fully known. (SLS 8.5)
Expected type was: scala.collection.generic.CanBuildFrom[Array[Class[_]],(?, Int),?]

可能出现什么问题?

1 个答案:

答案 0 :(得分:4)

除了隐式zipWithIndex之外,

CanBuildFrom不会接受参数,在您的情况下,map将替换为您的模式匹配。看起来你正在寻找的是 keys.zipWithIndex.map { case (t, i) => t.newInstance } 或其他一些迭代元素的方法。尝试这样的事情:

{{1}}