public class ArrayTest{
public static void main(String[] args)
{
int[] num1 = new int[]{1,2,3};
int[] num2 = new int[]{3};
System.arraycopy(num1,0,num2,0,num1.length);
for (int i=0;i<num2.length;i++)
{
System.out.println(num2[i]);
}
}
}Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at tianju.shuzu.ArrayTest.main(ArrayTest.java:8)eclipse。报告错误是这个

解决方案 »

  1.   


     System.arraycopy(num1,0,num2,0,num1.length);
    // 应为System.arraycopy(num1,0,num2,0,num2.length); 看看函数原型就知道
      

  2.   

    你这个 数组定义的是一维数组 吗,应该这样。。 int[] num1 = { 1, 2, 3 };
    int[] num2 = new int[3] ;
    System.arraycopy(num1, 0, num2, 0, num1.length);
    for (int i = 0; i < num2.length; i++) {
    System.out.println(num2[i]);
    }
      

  3.   


    System.arraycopy(num1,0,num2,0,num1.length);
    //相当于System.arraycopy(num1,0,num2,0,2); 数组num2从0倒2拷贝到num1从0开始的位置
      

  4.   

    很基础,lz得多看书啦
    public class ArrayTest{
        public static void main(String[] args)
        {
            int[] num1 = new int[]{1,2,3};   -->这样写法真怪,改为 int[] num1 = {1,2,3};
            int[] num2 = new int[]{3};    -->int[] num2 = {3};
            System.arraycopy(num1,0,num2,0,num1.length);   -->num1 长度为3,num2为1,num2当然越界啦
                                                                                                -->改法很多,如改之前的int[] num2 ={3,0,0};
            for (int i=0;i<num2.length;i++)
            {
                System.out.println(num2[i]);
            }
        }
    }