List<String> list = new ArrayList<String>();
list.add("hello");
list.add("word");
list.add("a");

String[] o=(String[])list.toArray();

for (int i = 0; i < o.length; i++) {
System.out.println(o[i]);
}//会出现Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

解决方案 »

  1.   

    改成下面的API操作方法 List<String> list = new ArrayList<String>();
            list.add("hello");
            list.add("word");
            list.add("a");        String[] o=new String[list.size()];
            list.toArray(o);        for (int i = 0; i < o.length; i++) {
                System.out.println(o[i]);
            }
      

  2.   

    恩  这方法我也试过可以的,主要是看到List这个类里有两个方法,上面的方法
    不是很懂,所以想试试
      

  3.   

    这是java具体的List.toArray()方法本身实现的问题,具体你可以看这个源码正确的方法是用List.toArray(T o)这个方法
      

  4.   


    List<String> list = new ArrayList<String>();
    list.add("hello");
    list.add("word");
    list.add("a");String[] o=(String[])list.toArray(new String[list.size]);for (int i = 0; i < o.length; i++) {
    System.out.println(o[i]);
    }
      

  5.   

    这跟toString方法有什么关系吗
      

  6.   

    List中toArray() 方法怎么用,就是那个返回Object[]的那个
      

  7.   

    返回的时候能不能再转换成除object之外的对象
      

  8.   

    如果用那个方法,泛型的信息已经被擦除,那么你只能 遍历Object的数组然后 每个Object数组 的单个元素转化为你想要的东西,给你贴个代码List<String> list = new ArrayList<String>();
            list.add("hello");
            list.add("word");
            list.add("a");        String[] o=new String[list.size()];
            Object[] obj=list.toArray();
            int i=0;
            for(Object oo:obj){
                if(oo instanceof String){ //对每个元素进行类型判断
                    o[i]=(String)oo;
                }
                i++;
            }
    //        list.toArray(o);
    //
            for (String s:o) {
                System.out.println(s);
            }
      

  9.   

    list数组 的没个元素不都是对象吗
      

  10.   

    这个是肯定不能强转的。  Object[]数组,里面存放的可能是Integer  可能是你自定义的Object   直接强转String  你觉得行的通吗?