ArrayList的toArray()问题
我在ArrayList中存放了一些字符串: 
       List   arr   =   new   ArrayList(); 
       arr.add( "str1 "); 
       arr.add( "str2 "); 
       arr.add( "str3 "); 
                                              ... 
 然后我想把它转成字符串数组,我这样做的: 
       String[]   str   =   (String[])arr.toArray(); 
 这一行抛出了一个类型转换的运行时异常:
ClassCastException  请问,为什莫会这样?
------解决方案--------------------从Object[]到String[]的转换是不行的。 
 	List list = new ArrayList(); 
 	list.add( "aaa "); 
 	list.add( "bbb "); 
 	list.add( "ccc "); 
 	Object[] objs = list.toArray(); 
 	String[] str = new String[objs.length]; 
 	System.arraycopy(objs, 0, str, 0, objs.length);
------解决方案--------------------在java中,当数组创建后,数组的类型就被固定了,ArrayList.toArray()返回值总是被作为一个Object[]来使用,尽管String[]是Object[]的一个扩展,所以不能简单的通过 
 (String[])ArrayList.toArray()来将Object[]数组转换成String[].   
 所以你要这样转换: 
 ArrayList arr = new ArrayList(); 
 arr.add( "str1 "); 
 arr.add( "str2 "); 
 arr.add( "str3 ");   
 String[] str = (String[])arr.toArray(new String[arr.size()]);