强制转换报错,如果不用for()遍历转换的话,有什么工具函数来转换么??

解决方案 »

  1.   

    没有api直接转的 我也试过不少时间没找到
    即使是一些工具类也是用for来一个一个转的
      

  2.   

    标准JDK类库里面没有这个API,第三方的类库当中可能有,具体实现也是for循环一个一个装换的
    不过如果对象数组里面全部都是String,如果仅仅是要输出信息的话,可以不转换
    import java.util.List;/**
     * Created by IntelliJ IDEA.
     * User: admin
     * Date: 2011-10-12
     * Time: 10:55:57
     * To change this template use File | Settings | File Templates.
     */
    public class TransferStrAry {
        public static void main(String[] args) {
            Object[] os={"a","b","c"};
    //        List list=o.
            for(Object o:os){
                System.out.println("out:"+o);
            }
        }
    }
    如果用利用String做拼接连缀等处理就必须转换了
      

  3.   


    List list = new ArrayList();
    list.add("asdfasdf");
    list.add("sfh");
    list.add("345");
    String[] str = (String[])list.toArray();
    System.out.println(str.length);报这个
    Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
    at com.ruanko.service.certificate.impl.CertificateReviewManagerImpl.main(CertificateReviewManagerImpl.java:35)
      

  4.   

    你的object[]是怎么得来的
    如果类似将list转成String[],即list.toArray(new String[0]);
      

  5.   

    应该这样调用import java.util.List;
    import java.util.ArrayList;public class TransferStrAry {
        public static void main(String[] args) {
            List list = new ArrayList();
            list.add("asdfasdf");
            list.add("sfh");
            list.add("345");
            String[] str =new String[list.size()];
            list.toArray(str);
            for(String s:str){
                System.out.println(s);
            }
        }
    }
      

  6.   

    String[] str=list.toArray(new String[0]);
      

  7.   


            List list = new ArrayList();
    list.add("asdfasdf");
    list.add("sfh");
    list.add("345");
    String[] str = (String[]) list.toArray(new String[0]);
    System.out.println(str.length);
    4F正解!