java泛型在list.toArray()处的难堪
List<String> strList = new ArrayList<String>(); strList.add("1"); strList.add("2"); List<Integer> intList = new ArrayList<Integer>(); intList.add(3); intList.add(4); List<Object> objList = new ArrayList<Object>(); /** 添加String List 和Integer List 对象进入Object List */ objList.addAll(strList); objList.addAll(intList); Object [] objs = objList.toArray(); for ( Object obj : objs ) System.out.println(obj);5 楼 beefcow 2009-08-11 不错
感谢 6 楼 hunnuxiaobo 2010-04-30 mercyblitz 写道 List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
String [] nums = new String [list.size()];
list.toArray(nums);
这样就没有问题了!
我今天做项目也遇到这个问题,总报String cannot cast to Object异常。我试了一下,3楼的办法可行,谢谢! 7 楼 crabdave 2010-12-20 建议这个问题还是查一下API吧!
toArray(T[] a) 返回以正确顺序包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
注明类型不就完了么?
String[] tt =list.toArray(new String[0]);这样也挺好啊!
为什么还得转换后再赋值?