黑马程序员技术交流社区

标题: 此处说是不能创建泛型数组是什么意思 [打印本页]

作者: 何明辉    时间: 2012-9-12 15:40
标题: 此处说是不能创建泛型数组是什么意思
本帖最后由 何明辉 于 2012-9-12 18:01 编辑

import java.util.*;
class ToArray
{
public static <T>T[] getArray(Collection<T> t)
{
  T[] t1=new T[t.size()];//此处说是不能创建泛型数组,
  Iterator<T> it=t.iterator();
  while(it.hasNext())
  {
   int x=0;
   t1[x++]=it.next();
  }
  return t1;
}
public static void main(String[] args)
{
  List<Integer> st=new ArrayList<Integer>();
  st.add(3);
  st.add(4);
  st.add(1);
  st.add(5);
  System.out.println(getArray(st));
}
}
上面程序是将集合变成数组,但是编译时说是不能创建泛型数组,不知道错哪儿了,请大家帮我说说,谢谢!

作者: 张 涛    时间: 2012-9-12 15:51
编译器不允许创建泛型变量的数组,如:Vector<Integer> vectorList[] = new Vector<Integer>[10];

张老师讲泛型的时候讲过。
作者: 李菁    时间: 2012-9-12 16:43
在创建数组时,数组的元素不能使用参数化类型。
而且类里的静态方法不能使用泛型类





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