为什么以下代码抛出ArrayStoreException?
double[] a = {2.0,3.4,3.6,2.7,5.6};
int[] b = {2,3,4,5};
System.arraycopy(b,0,a,1,4);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 12
来自以下文档System.arraycopy:
否则,如果满足以下任何条件,则抛出ArrayStoreException并且不修改目标:
[...]
src参数和dest参数引用其组件类型为不同基本类型的数组.
这就是这里的情况 - int并且double是不同的原始类型,因此如文档所述抛出异常.
关键arraycopy是通过盲目复制原始数据可以快速地工作,而无需应用任何转换.在您的情况下,它将必须应用转换,因此它失败.
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |