黑马程序员技术交流社区

标题: 为什么集合用了泛型之后还要强转? [打印本页]

作者: 何清林    时间: 2014-2-26 13:32
标题: 为什么集合用了泛型之后还要强转?
为什么集合用了泛型之后还要强转?
我在使用集合向数组转换的时候使用了toArray(),已经限定类型了,为什么还要强转?请看,
                //集合的添加
                ArrayList<String> al1 = new ArrayList<String>();
                al1.add("hql");
                al1.addAll(set);
                System.out.println(al1);
                //集合的转换  toArray
                String[] str = new String[al1.size()];
                str = (String[]) al1.toArray();




作者: e.c    时间: 2014-2-26 14:17
ArrayList的toArray()方法不带泛型的,它返回Object[]。所以要强转
用public <T> T[] toArray(T[] a)这个方法可以:al1.toArray(str);
作者: yunzhongzhuhuo    时间: 2014-2-26 16:23
1楼说的正解,toArray()返回的就是一个Object类型的数组,所以你还要强转成String类型
这个是JDk上的文档,你可以看下。。。[attach]35282[/attach]

QQ图片20140226162152.jpg (44.15 KB, 下载次数: 5)

QQ图片20140226162152.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2