获取ava.lang.ArrayIndexOutOfBoundsException的System.arraycopy ..我正在尝试将数据从一个数组复制到另一个数组。但我得到了一个例外
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);
}发布于 2011-09-15 23:06:30
您正在尝试将8个项目复制到长度为1的数组中。您不能这样做。
来自the documentation
否则,如果满足以下任一条件,则会引发IndexOutOfBoundsException,并且不会修改目标:
长度参数为负。长度参数为负。长度参数为negative.
在本例中,destPos + length为8,dest.length为1,因此抛出异常。
注意,Java中的数组有固定的长度。如果你想要一个可扩展的容器,看看ArrayList。
发布于 2011-09-15 23:07:28
因为array的长度是1。
声明array[] = { "NO DATA YET" };创建了一个长度为1的数组,其中包含一项。
而是将目标数组声明为:
private String array[] = new String[8];发布于 2011-09-15 23:08:44
数组的长度只有1,并且您正在尝试将8个元素从array2复制到数组中。尝试使用ArrayList或其他可以在需要时进行扩展的工具。
https://stackoverflow.com/questions/7433067
复制相似问题