开发者社区> 问答> 正文

关于JAVA中的List接口

有如下说明代码

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[]{});却能顺利通过,
请问有人知道为什么吗

展开
收起
蛮大人123 2016-03-12 17:32:46 2228 0
2 条回答
写回答
取消 提交回答
  • List.sort
    2019-07-17 19:01:17
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    java不支持对数组进行强转。
    A[] a2 = (A[]) all.toArray(new A[] {});之所以可以是因为,toArray构建的是A【】,虽然返回的是object[].

    2019-07-17 19:01:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载