对java中的`toArray(T [] a)`方法感到困惑

时间:2015-01-11 06:34:59

标签: java generics type-erasure

ListtoArray方法,例如:

<T> T[] java.util.ArrayList.toArray(T[] a)

调用此方法时,我应该创建一个新实例并将其传递给toArray(new MyElementClass[0])

可以像这样定义:

<T> T[] java.util.ArrayList.toArray(Class<T>)

通过致电toArray(MyElementClass[].class),它会更有效吗?

2 个答案:

答案 0 :(得分:3)

会的。但是,原始方法是为了向后兼容。

请参阅this

答案 1 :(得分:1)

现在toArray的方式,它允许你重用一个数组(如果它有足够的大小,它将使用给定的数组),而不是总是需要分配一个新数组。