1:ArrayList和数组有相同之处但并非同一个东西。强制转换肯定抛异常的
String[] arr = (String[])list.toArray(new String[size]);lz,你的flag实例是ArrayList不错,但flag.get(1)这里取出了其中一个元素,
你的应用里取出的这个元素可能不是数组。所以运行时会抛出转换异常问题一:你的flag.get(1)取出的变量不能转换为数组
问题二:不是,你可以调用getClass() 方法打印他的类型看看。ps.我想你的本意可能是想把flag转换为数组用,可以调用flag的toArray()方法

解决方案 »

  1.   

    问题一:你的flag.get(1)获取的是变量,不是object[]类型,不能转换为数组 ,你可以把获取的数据放进数组中
    问题二:flag.get(1)是否是ArrayList型? 这个不好控制,因为你没有使用泛型来控制里面的数据类型,要是有<ArrayList>
    则就是flag.get(1)就是ArrayList型了,你使用getClass()方法获取他的数据类型看看 如果真像1楼朋友说的你想把ArrayList类型转化为object[]类型
    直接调用ArrayList的toArray()方法就返回object[]类型了
      

  2.   

    Object[] obj = ((ArrayList) flag.get(1)).toArray();
    看这样可不可以?