你可以试着用下面的两种方法解决
1、
Object[] o = list.toArray();
2、
Integer[] a = list.toArray(new Integer[0]);
就算用的是泛型,toArray的返回类型也是Object类型,而强制类型转换是不允许数组强制的,所以有了带参数的toArray方法
而带参数的toArray(T[] a) 方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟ArrayList的size一致的空数组,虽然方法本身还是以 Object 数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常;你可以试着这样写:
public static void main(String[] args)
{
ArrayList <Integer> list = new ArrayList <Integer>();
for(int i = 0 ; i < 5; i ++)
{
list.add(i);
}
Object[] o = list.toArray();
Integer[] a = list.toArray(new Integer[0]);
System.out.println(Arrays.toString(o));
for(int i : a)
{
System.out.println(i);
}
}
|