A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何明辉 中级黑马   /  2012-9-12 15:40  /  1196 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何明辉 于 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));
}
}
上面程序是将集合变成数组,但是编译时说是不能创建泛型数组,不知道错哪儿了,请大家帮我说说,谢谢!

2 个回复

倒序浏览
编译器不允许创建泛型变量的数组,如:Vector<Integer> vectorList[] = new Vector<Integer>[10];

张老师讲泛型的时候讲过。
回复 使用道具 举报
在创建数组时,数组的元素不能使用参数化类型。
而且类里的静态方法不能使用泛型类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马