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

Scala中的Iterable Trait方法缺少参数类型错误。,scala,iterable,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 ex

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

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),?]

可能有什么问题?

zipWithIndex不接受参数,除了隐式的
CanBuildFrom
,在您的情况下,它将被模式匹配替换。看起来您正在寻找的是
map
或某种其他方法来迭代元素。试着这样做:

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

zipWithIndex
不接受参数,除了隐式的
CanBuildFrom
,在您的情况下,它将被模式匹配替换。看起来您正在寻找的是
map
或某种其他方法来迭代元素。试着这样做:

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

或者在本例中等效地,因为索引被简单地丢弃:
keys.map(\uu.newInstance)
。或者在本例中等效地,因为索引被简单地丢弃:
keys.map(\uu.newInstance)