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);