ArrayList.toArray() 遇到java.lang.ClassCastException错误


 出现java.lang.ClassCastException错误。

原因:

这种转换方式是不被支持的。
强制转换的直接作用对象是Object类型的,通常只能支持普通的类型对象转化,
String[]包括两层转换,数组、String。多重转换由于sun并没有提出这种转换的转换类型先后顺序,
这个会引起分歧,导致转换失败。例如:你是想先把arraylist.toArray()这个对象转化为String,再把它转化为String[]就会出现不同的转换结果,这就是分歧的产生。

例子:


同样会报ClassCastException异常

 

正确使用方法:

 

        1)  Long[] l = new Long[<total size>];
              list.toArray(l);
 
        2)  Long[] l = (Long []) list.toArray(new Long[0]);

        3)  Long [] a = new Long[<total size>];
              Long [] l = (Long []) list.toArray(a);

 

posted @ 2011-07-18 21:40  0707  阅读(375)  评论(0编辑  收藏  举报