import java.util.*;public class ArrayTest {    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] str = {"aa","bb","cc"};
        int[] in = {1,2,3};
        ArrayList str_arrayList = new ArrayList();
        ArrayList int_arrayList = new ArrayList();
        for(int i=0;i<str.length;i++)
        {
            str_arrayList.add(str[i]);
            int_arrayList.add(in[i]);
        }
        String[] str1 = (String[])str_arrayList.toArray();
        String[] in1 = (String[])int_arrayList.toArray();
        String[][] s = {str1,in1};
        System.out.println(s[0][0]);
        
        
    }}编译无错
运行错误提示:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at ArrayTest.main(ArrayTest.java:16)

解决方案 »

  1.   

    list里不能放置基本数据类型吧
    另外int_arrayList.add(in[i]);--放的是int型的String[] in1 = (String[])int_arrayList.toArray(); --int型要转成String 这个应该是不行的
      

  2.   

    List里不能放基本数据类型的数据 像int double long 等都不行的
      

  3.   

    int_arrayList.add(in[i]);
    这句编译都不能通过的
      

  4.   

    import java.util.*;public class ArrayTest {    public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] str = {"aa","bb","cc"};
            ArrayList str_arrayList = new ArrayList();        for(int i=0;i<str.length;i++)
            {
                str_arrayList.add(str[i]);        }
            String[] str1 = (String[])str_arrayList.toArray();
            System.out.println(str1[0][0]);
            
            
        }}代码改成这样还是不行啊  String[] str1 = (String[])str_arrayList.toArray();
    这句话有问题。
      

  5.   

    String[] str1 = (String[])str_arrayList.toArray();  改成
    String[] str1 = (String[])str_arrayList.toArray(new String[str_arrayList.size()]); 
      

  6.   

    下面这句话有问题,没有办法直接转成String[]
    String[] str1 = (String[])str_arrayList.toArray();
    可以这样做:
    String[] str2 = new String[3];
    System.arraycopy(str_arrayList.toArray(), 0, str2, 0, 3);
    当然,String[] in1 = (String[])int_arrayList.toArray();就更不行了对于List里放基本数据类型的数据 像int double long,在JDK1.5后是可以的
    叫autoboxing
      

  7.   

    String[] str1 = (String[])str_arrayList.toArray();
    还可以这样做: 
    String[] str1 = (String[])str_arrayList.toArray(new String[0]);