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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© forTomorrow 中级黑马   /  2015-6-5 21:49  /  1084 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型规定了集合中只能存储某一类型的元素,这不就导致其他类型的元素不能存储嘛,相当于限定局限了集合的功能

20 个回复

正序浏览
虽然现在不知道原因吧,但是等我知道了会告诉你的,记得给我技术分
回复 使用道具 举报
mishisanyi 发表于 2015-6-9 21:04
不同类型的元素进行存储,你让虚拟机怎么去内存开辟空间,不同类型的所占的内存空间大小并不一致,虚拟机可 ...

我晕!,现在就是说的集合中用到的泛型啊!!!
回复 使用道具 举报
不同类型的元素进行存储,你让虚拟机怎么去内存开辟空间,不同类型的所占的内存空间大小并不一致,虚拟机可没有人那么人性化,其次,你想存储不同类型的,其实也简单啊,集合可以存储对象,你将包装到同一对象不就可以了
回复 使用道具 举报
lwj123 发表于 2015-6-6 14:58
不过反射的话,也可以存储到其他的数据类型的值啊

额,都不回答问题,还是我自己想办法搞清楚了!!!反射是可以,利用反射获得集合中的方法,然后再用反射调用方法添加其他类型的元素
回复 使用道具 举报
lwj123 发表于 2015-6-6 14:58
不过反射的话,也可以存储到其他的数据类型的值啊

求详解,意思是已经用泛型规定了类型后,用反射还能存储进别的类型元素?
回复 使用道具 举报
不过反射的话,也可以存储到其他的数据类型的值啊
回复 使用道具 举报
forTomorrow 发表于 2015-6-6 13:33
是同一类型元素 不是同一个元素 汗!!!!

我知道。打错了而已
回复 使用道具 举报
集合之所以比数组好,除了空间不固定,动态改变,之外,另外就是数据不单一,不明确固定是单一类型,泛型又限制了元素的类型,这不就是局限了吗,缩小功能
回复 使用道具 举报
pp7803515 发表于 2015-6-6 12:29
集合本身只能是存放同一个元素的吧,如果你要在同一个集合里面存放不同的2个元素,估计只能把2个元素糅合为 ...

是同一类型元素 不是同一个元素 汗!!!!
回复 使用道具 举报
我上面指的是自定义泛型
回复 使用道具 举报
集合本身只能是存放同一个元素的吧,如果你要在同一个集合里面存放不同的2个元素,估计只能把2个元素糅合为同一个元素了,但是这样不安全而且没意义。最好还是不同元素放不同的集合里面,如果你要取值直接找不同的集合就可以了
回复 使用道具 举报
kikt 发表于 2015-6-6 10:47
1、集合本来目的就是储存同一种元素,这样代码更加规范,不然会增加命名的难度,你一个集合既储存String类 ...

1命名那只是小问题吧
2也没说泛型没用啊,只是针对学习泛型中的疑惑提问,一般来说事物都有两面性,比方同步虽然更加安全了,但同时也降低了效率,所以说有时候是根据需要,判断利弊,进行选择的
回复 使用道具 举报
夏尔 发表于 2015-6-6 10:10
不加泛型限定,你存了其他类型的元素 虽然编译能通过 运行也是失败的

具体要看怎么操作元素的 ,除非本来是想操作同一类型元素 结果元素里有不同类型的  运行才会出错
回复 使用道具 举报
不加泛型限定,你存了其他类型的元素 虽然编译能通过 运行也是失败的
回复 使用道具 举报
途中ms前进 发表于 2015-6-5 23:03
能让避免强转不更好

答不符题,我直到可以避免强转,我现在说的是我的困惑问题
回复 使用道具 举报
shao122791159 发表于 2015-6-5 23:17
实际使用当中,同一个集合当中存储不同类型元素这一功能是极少用到的,用这个功能反而会造成很多麻烦。 ...

没有参加工作,实际项目中真的一般只存储同一类型元素?
回复 使用道具 举报
实际使用当中,同一个集合当中存储不同类型元素这一功能是极少用到的,用这个功能反而会造成很多麻烦。
回复 使用道具 举报
能让避免强转不更好:funk:
回复 使用道具 举报
它是分别存储的。

点评

具体说下  发表于 2015-6-5 22:46
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马