首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外的ArrayStoreException

意外的ArrayStoreException
EN

Stack Overflow用户
提问于 2009-06-24 13:55:26
回答 4查看 3.5K关注 0票数 2

为什么下面的代码抛出ArrayStoreException

代码语言:javascript
复制
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);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-24 14:04:15

来自System.arraycopy的文档

否则,如果满足以下任一条件,则会引发ArrayStoreException,并且不会修改目标:

..。

src参数和dest参数引用组件类型为不同原语类型的数组。

这就是这里的情况- intdouble是不同的原始类型,所以异常被抛出作为文档。

arraycopy的要点是,它可以通过盲目复制原始数据来快速工作,而不必应用任何转换。在您的情况下,它将不得不应用转换,因此它会失败。

票数 12
EN

Stack Overflow用户

发布于 2009-06-24 13:59:52

是的,这是记录在案的具有不同原始类型作为组件的数组之间的arraycopy行为。该类型是否可以正常升级并不重要;这就是arraycopy的设计目的。

票数 3
EN

Stack Overflow用户

发布于 2009-06-24 13:57:20

尝试双倍**[]**a= {2.0,3.4,3.6,2.7,5.6};int**[]** b

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1038540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档