日期:2014-05-20  浏览次数:20809 次

object数组不能转换为string数组吗
[code=Java][/code]

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;

------解决方案--------------------
如果用那个方法,泛型的信息已经被擦除,那么你只能 遍历Object的数组

然后 每个Object数组 的单个元素转化为你想要的东西,给你贴个代码
Java code

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

------解决方案--------------------
关于多态楼主好可以好好理解一下