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

时间:2012-07-03 20:18:18

标签: 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)
                    ^

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

1 个答案:

答案 0 :(得分:7)

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

scala> def arr[T : Manifest] = new Array[T](0)
arr: [T](implicit evidence$1: Manifest[T])Array[T]

详细了解此here。有关更深入的信息,请参阅the paper