public static void main(String [] args){
      Object [] str1=new Object[5];
      str1[0]=new String ("a");
      str1[1]=new String ("b");
      str1[2]=new String ("c");
      str1[3]=new String ("d");
      str1[4]=new String ("e");
      
      Object [] str2=new Object[3];
      str2[0]=new Integer(5);
      str2[1]=new Integer(1);
      str2[2]=new Integer(2);
      Object [] str3=new Object[str1.length+str2.length];
      System.arraycopy(str1, 2, str3, 2, 3);
      System.arraycopy(str2,0,str3,0,2);
      System.out.println(str3);
     }最后的输出:[Ljava.lang.Object;@497934
为什么无法拷贝到str3中呢?

解决方案 »

  1.   

    你的数组赋值方法是正确的,错误的是输出方法,不能企图直接用System.out.println()输出一个数组的所有成员
    Object [] str1=new Object[5];
      str1[0]=new String ("a");
      str1[1]=new String ("b");
      str1[2]=new String ("c");
      str1[3]=new String ("d");
      str1[4]=new String ("e");
        
      Object [] str2=new Object[3];
      str2[0]=new Integer(5);
      str2[1]=new Integer(1);
      str2[2]=new Integer(2);
      Object [] str3=new Object[str1.length+str2.length];
      System.arraycopy(str1, 2, str3, 2, 3);
      System.arraycopy(str2,0,str3,0,2);
      for(Object i: str3)        //这是JAVA里新的for语句
           System.out.println(i); //把输出换成这样就可以了
      

  2.   

    你想输出的话:  for(int i=0;i<str3.length;++i)
      System.out.println(str3[i]);
      }
      

  3.   

    不是无法拷贝对象的输出就这样换一个输出方式呗System.out.println(Arrays.toString(str3));