Object obj[] = new Object[2];
obj[0] = "str1";
obj[1] = "str2";
String[] str = (String[])obj;为什么编译时没报错,儿运行的时候报ClassCastException的错误?

解决方案 »

  1.   

    Object obj[] = new Object[2];
    obj[0] = "str1";
    obj[1] = "str2";
    String[] str = new String[2];
    for (int i = 0; i < obj.length; i++) {
    str[i] = (String) obj[i];
    }
      

  2.   

    数组之间不能这样直接转化,要转换要先将数组元素取出来,对其进行强制类型转换,在放到相应的数组中,
    可以这样理解,虽然所有对象都是Object对象,即所有对象都可以转换为Object,Object的对象也可以进行向下类型转换但数组不能转化