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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BlackHorse 黑马帝   /  2011-7-15 11:31  /  5802 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么java不支持创建泛型数组??
有人说java泛型数组可以强制转换
Vector<Integer>[] VectorList=(Vector<Integer>[])new Vector[10];
HashMap<String, Long>[] mapArray = (HashMap<String, Long>[])new HashMap[10];
这样用好吗??

4 个回复

倒序浏览
黑马网友  发表于 2011-7-15 13:40:37
沙发
不懂,这样写有什么意义吗
回复 使用道具 举报
黑马网友  发表于 2011-7-15 20:01:48
藤椅
复制到Eclipse报错了,说明不能这么写。
就像楼上所说的,能这么写,又有什么意义么,本来泛型的作用就是控制传入集合或者数组的类型,消除代码中的强制转换,防止错误的类型放入集合中,将错误尽可能的在编译阶段就发觉出来。你这个泛型数组和普通的泛型相比较,有什么优点么?如果没有优点和作用,也就没有存在的价值。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-16 10:40:34
板凳
不用进行强制类型转换了,因为Vector对象,HashMap对象只能容纳指定类型的对象,编译器能够在编译期间检测程序的类型正确性。当我们把VectorList,mapArray声明为类型Vector<Integer>,HashMap<String, Long>后就意味着变量在何时何地的使用都是正确的,编译器保证了这一点。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
bucuo........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马