根据java doc的toArray()返回包含此集合中所有元素的数组。
和toArray(Object obj [])。返回包含此集合中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
第一个toArray()我了解,但是第二个toArray(Object obj [])我无法理解。请举例说明。
一个是通用的,另一个不是通用的。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)