Collection.toArray()和Collection.toArray(Object obj [])之间的区别

App*_*art 4 java arrays

根据java doc的toArray()返回包含此集合中所有元素的数组。

和toArray(Object obj [])。返回包含此集合中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

第一个toArray()我了解,但是第二个toArray(Object obj [])我无法理解。请举例说明。

Jer*_*vel 6

一个是通用的,另一个不是通用的。toArray()将返回,Object[]toArray(T[])将返回type数组T[]

样品:

public static void main(String[] args) {
    Object[] baseArray = new ArrayList<String>().toArray();
    System.out.println(baseArray.getClass().getCanonicalName());

    String[] improvArray = new ArrayList<String>().toArray(new String[5]);
    System.out.println(improvArray.getClass().getCanonicalName());
}
Run Code Online (Sandbox Code Playgroud)

输出:

java.lang.Object[]
java.lang.String[]
Run Code Online (Sandbox Code Playgroud)