代码如下:
Object[] a = new String[] {"1", "2"};
String[] array = ...;我想把a赋给array,直接使用array = (String[]) a不对,正确的应如何操作?非for循环。谢谢

解决方案 »

  1.   

    public class Test {
    public static void main(String[] args) {
    Object[] a = new String[] {"1", "2"};
    String[] array;
    array = (String[])a;
    for(String s : array) {
    System.out.println(s);
    }
    }
    }我这儿没问题,JDK1.5
      

  2.   

    Object[] a = new String[] {"1", "2"};
    String[] array =new String[a.length];
    System.arraycopy(a, 0, array, 0, a.length);
      

  3.   

    String[] array =(String[])a 怎么不对啊?
      

  4.   

    Object[] a = new String[] {"1", "2"};
    String[] array = (String[])a;
    System.out.println(array[0]);
    System.out.println(array[1]);
                   这样子可以啊。
      

  5.   

    Object[] a = new String[] {"1", "2"};
    String[] array = (String[])a;
    这两句话编译没错么
      

  6.   

    据说JDK1.7处理了这个问题,可以执行,单以前的不行,不报错但运行时出异常Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
      

  7.   

    我没说明白,看如下代码,a1本身是Object类型的数组。 Object[] a1 = new Object[2];
    a1[0] = "1";
    a1[1] = "2";
    String[] a3 = new String[a1.length];
    a3 = (String[]) a1;

    for (int i = 0; i < a3.length; i++)
    System.out.println(a3[i]);
      

  8.   

    Object[] a = new String[] {"1", "2"};
            String[] array = (String[])a;这两句话编译没错么有错
      

  9.   


    这个和你顶楼的问题完全不一样啊,顶楼的a本来就是一个String[],强转不会有问题
    而这里的a1是一个Object[],就不能转了
      

  10.   

      Object[] a = new String[]{"1","2"};
            String[] array = (String[])a;莫问题的