为什么以下参数化方法无法编译?

Joh*_*ood 0 scala parameterized

Scala API,我得到了以下示例,它不能编译;

scala> def arr[T] = new Array[T](0)
<console>:10: error: cannot find class manifest for element type T
       def arr[T] = new Array[T](0)
                    ^
Run Code Online (Sandbox Code Playgroud)

我想知道,为什么它不编译(Scala API没有解释错误)?这不仅仅是一个普通的参数化方法吗?为什么编译器会抱怨它?

mis*_*tor 7

正如编译器错误消息所示,您需要一个Manifest约束.

scala> def arr[T : Manifest] = new Array[T](0)
arr: [T](implicit evidence$1: Manifest[T])Array[T]
Run Code Online (Sandbox Code Playgroud)

了解更多关于此这里.有关更深入的信息,请参阅该文章.