System.arraycopy获取java.lang.ArrayIndexOutOfBoundsException

SJS*_*SJS 4 java arrays

System.arraycopy获取ava.lang.ArrayIndexOutOfBoundsException ..我试图将数据从一个数组复制到下一个数组.但我得到一个例外

private String array[] = { "NO DATA YET" };


 private void setListData()
    {
        String array2[] = { "Iphone", "Tutorials", "Gallery", "Android",    "item 1", "item 2", "item3", "item 4" };
        System.arraycopy(array2, 0, array, 0, array2.length);
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

您试图将8个项目复制到长度为1的数组中.您不能这样做.

文档:

否则,如果满足以下任何条件,则抛出IndexOutOfBoundsException并且不修改目标:

  • srcPos参数为负数.
  • destPos参数是否定的.
  • 长度参数是否定的.
  • srcPos + length大于src.length,即源数组的长度.
  • destPos + length大于dest.length,即目标数组的长度.

在这种情况下,destPos + length是8,并且dest.length是1,因此抛出异常.

请注意,Java中的数组具有固定长度.如果您想要一个可扩展的容器,请查看ArrayList.