黑马程序员技术交流社区

标题: 泛型弊端 [打印本页]

作者: forTomorrow    时间: 2015-6-5 21:49
标题: 泛型弊端
泛型规定了集合中只能存储某一类型的元素,这不就导致其他类型的元素不能存储嘛,相当于限定局限了集合的功能
作者: 城北一直晴。    时间: 2015-6-5 22:11
它是分别存储的。
作者: 途中ms前进    时间: 2015-6-5 23:03
能让避免强转不更好:funk:
作者: shao122791159    时间: 2015-6-5 23:17
实际使用当中,同一个集合当中存储不同类型元素这一功能是极少用到的,用这个功能反而会造成很多麻烦。
作者: forTomorrow    时间: 2015-6-6 09:38
shao122791159 发表于 2015-6-5 23:17
实际使用当中,同一个集合当中存储不同类型元素这一功能是极少用到的,用这个功能反而会造成很多麻烦。 ...

没有参加工作,实际项目中真的一般只存储同一类型元素?
作者: forTomorrow    时间: 2015-6-6 09:40
途中ms前进 发表于 2015-6-5 23:03
能让避免强转不更好

答不符题,我直到可以避免强转,我现在说的是我的困惑问题
作者: 夏尔    时间: 2015-6-6 10:10
不加泛型限定,你存了其他类型的元素 虽然编译能通过 运行也是失败的
作者: forTomorrow    时间: 2015-6-6 10:42
夏尔 发表于 2015-6-6 10:10
不加泛型限定,你存了其他类型的元素 虽然编译能通过 运行也是失败的

具体要看怎么操作元素的 ,除非本来是想操作同一类型元素 结果元素里有不同类型的  运行才会出错
作者: forTomorrow    时间: 2015-6-6 10:58
kikt 发表于 2015-6-6 10:47
1、集合本来目的就是储存同一种元素,这样代码更加规范,不然会增加命名的难度,你一个集合既储存String类 ...

1命名那只是小问题吧
2也没说泛型没用啊,只是针对学习泛型中的疑惑提问,一般来说事物都有两面性,比方同步虽然更加安全了,但同时也降低了效率,所以说有时候是根据需要,判断利弊,进行选择的
作者: pp7803515    时间: 2015-6-6 12:29
集合本身只能是存放同一个元素的吧,如果你要在同一个集合里面存放不同的2个元素,估计只能把2个元素糅合为同一个元素了,但是这样不安全而且没意义。最好还是不同元素放不同的集合里面,如果你要取值直接找不同的集合就可以了
作者: pp7803515    时间: 2015-6-6 12:39
我上面指的是自定义泛型
作者: forTomorrow    时间: 2015-6-6 13:33
pp7803515 发表于 2015-6-6 12:29
集合本身只能是存放同一个元素的吧,如果你要在同一个集合里面存放不同的2个元素,估计只能把2个元素糅合为 ...

是同一类型元素 不是同一个元素 汗!!!!
作者: forTomorrow    时间: 2015-6-6 13:41
集合之所以比数组好,除了空间不固定,动态改变,之外,另外就是数据不单一,不明确固定是单一类型,泛型又限制了元素的类型,这不就是局限了吗,缩小功能
作者: pp7803515    时间: 2015-6-6 14:52
forTomorrow 发表于 2015-6-6 13:33
是同一类型元素 不是同一个元素 汗!!!!

我知道。打错了而已
作者: lwj123    时间: 2015-6-6 14:58
不过反射的话,也可以存储到其他的数据类型的值啊
作者: forTomorrow    时间: 2015-6-6 15:19
lwj123 发表于 2015-6-6 14:58
不过反射的话,也可以存储到其他的数据类型的值啊

求详解,意思是已经用泛型规定了类型后,用反射还能存储进别的类型元素?
作者: forTomorrow    时间: 2015-6-9 10:10
lwj123 发表于 2015-6-6 14:58
不过反射的话,也可以存储到其他的数据类型的值啊

额,都不回答问题,还是我自己想办法搞清楚了!!!反射是可以,利用反射获得集合中的方法,然后再用反射调用方法添加其他类型的元素
作者: mishisanyi    时间: 2015-6-9 21:04
不同类型的元素进行存储,你让虚拟机怎么去内存开辟空间,不同类型的所占的内存空间大小并不一致,虚拟机可没有人那么人性化,其次,你想存储不同类型的,其实也简单啊,集合可以存储对象,你将包装到同一对象不就可以了
作者: forTomorrow    时间: 2015-6-10 08:44
mishisanyi 发表于 2015-6-9 21:04
不同类型的元素进行存储,你让虚拟机怎么去内存开辟空间,不同类型的所占的内存空间大小并不一致,虚拟机可 ...

我晕!,现在就是说的集合中用到的泛型啊!!!
作者: QQheima    时间: 2015-6-10 11:30
虽然现在不知道原因吧,但是等我知道了会告诉你的,记得给我技术分




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