关于System.arraycopy()方法的一个发现,不知道各位是否认可,或是偶的理解有误也肯请帮忙指正
第一个程序如下,运行也完全无误
public class ArrayCopy
{
public static void main(String[] args)
{
String totalBookNames[] = new String[1000];
for(int i=0;i<totalBookNames.length;++i)
{
totalBookNames[i]="图书"+i;
}
String lendBookNames[] = new String[15];
System.arraycopy(totalBookNames,8,lendBookNames,0,15);
System.out.println("借出的图书列表如:");
for(int i=0;i<lendBookNames.length;++i)
{
System.out.println(lendBookNames[i]);
}
}
}
下面给出第二个使用该方法的程序,运行有错误
import java.io.*;
public class AcceptInMessage
{
public static void main(String[] args)
{
char engChar[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'};
int arcChar[] = {};
System.out.println(engChar.length);
System.arraycopy(engChar,0,arcChar,0,5);
for(int i=0;i<=25;i++)
{
System.out.print(engChar[i]);
}
System.out.println();
}
}
运行错误提示信息如下(编译正确)
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at AcceptInMessage.main(AcceptInMessage.java:11)
不知道这里作何解释?难道说System.arraycopy()方法操作的数组只能应用于用new方法创建的数组吗?