在程序中,我们往往要把一个List(ArrayList or LinkedList)对应赋值给一个Array,
这是可以用List提供的toArray()方法。
但是要使用不好,就会有ClassCastExceptiony异常。
看以下代码:
List list = new ArrayList();
list.add(new Long(1));
list.add(new Long(2));
list.add(new Long(3));
list.add(new Long(4));
Long[] longArray = (Long[])list.toArray(); //抛出java.lang.ClassCastException
for(int i=0; i<longArray.length; i++)
System.out.println(longArray[i].longValue());
原因是java中的强制类型转换只是针对单个对象的,
将整个数组转换成另外一种类型的数组是不行的。
toArray()正确使用方式如下:
1) Long[] longArray = new Long[list.size()];
list.toArray(longArray);
2) Long[] longArray = (Long [])list.toArray(new Long[0]);
3) Long[] a = new Long[list.size()];
Long [] longArray = (Long [])list.toArray(a);
toArray()方法,但是要使用不好,就会有ClassCastExceptiony异常
最新推荐文章于 2023-04-09 15:50:38 发布