scala> def a[A](b:Seq[A]) = b.toArray
<console>:7: error: could not find implicit value
for evidence parameter of type ClassManifest[A]
def a[A](b:Seq[A]) = b.toArray
^
这是什么问题?我该如何解决这个问题?
答案 0 :(得分:6)
你要做的是指定可退回的类型,这将起作用(对于scala&lt; 2.8):
def a[A](b:Seq[A]):Array[A] = b.toArray
由于新的Collections框架必须进行特殊的转换才能处理像Collections这样的数组,请参阅Fighting bit rot第448页,我们必须告诉高阶类型,它的含义是{ {1}}讲述了课程(有一个ClassManifest
更宽)。
因此,以下两个示例均有效(此处提供更多信息Collections API Explained):
Manifest
答案 1 :(得分:4)
scala> def a[A : ClassManifest](b:Seq[A]) = b.toArray
a: [A](b: Seq[A])(implicit evidence$1: ClassManifest[A])Array[A]
scala>
答案 2 :(得分:3)
您需要添加一个视图绑定,以便为其提供清单:
def a[A: ClassManifest](b:Seq[A]) = b.toArray