有如下说明代码
class A{}
main()
{
List all=ArrayList();
all.add(new A());
all.add(new A());
A[] a1=new A[2];
a1=(A[])all.toArray();
A[] a2=all.toArray(new A[]{});
}
以上代码, a1=(A[])all.toArray();总是报ClassCastException错误,
而toArray()方法返回的是Object[],我已经强转了,
A[] a2=all.toArray(new A[]{});却能顺利通过,
请问有人知道为什么吗
java不支持对数组进行强转。
A[] a2 = (A[]) all.toArray(new A[] {});之所以可以是因为,toArray构建的是A【】,虽然返回的是object[].
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。