2015-01-11 23 views
1

List方法有一個方法toArray如:困惑`指定者(T []一個)`在Java

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

調用此方法時,我要創建一個新實例,並將其傳遞toArray(new MyElementClass[0])

難道這樣的定義:

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

通過調用toArray(MyElementClass[].class),它可以更有效?

+0

也許是的,雖然你可以隨時保留一些常量,每個類型的零長度數組都是你需要的。但是這個問題是非常假設的,因爲你不能改變API類。 –

+0

它必須是'Class '而不是'Class '。 – immibis

+0

列表是接口,它沒有稱爲「toArray」的方法。有一個稱爲ArrayList的接口的實現。只是爲了不會混淆其他人 – rkosegi

回答

3

它會的。但是,原始方法是爲了向後兼容而給出的。

this

1

方式toArray現在,它可以讓你重新使用數組(它將使用給定的數組,如果它具有足夠的大小),而不是總是需要分配一個新的。