黑马程序员技术交流社区
标题:
关于泛型的一个问题
[打印本页]
作者:
"O_忆_O
时间:
2013-7-12 23:50
标题:
关于泛型的一个问题
本帖最后由 "O_忆_O 于 2013-7-14 00:43 编辑
有人能解释一下泛型为什么要两边类型一样吗?
视频里面听了几遍还是不是很懂.
ArrayList<Object> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<Object>();
复制代码
这两个都是不行的
作者:
白_蓝(八公)
时间:
2013-7-13 01:41
泛型的安全机制使运行时错误转移到了编译时期,主要是为了避免强转时出现的麻烦。
数据类型<尖括号里面我确定了是String类型> 变量名 ;;;当我要new一个对象的时候,却不是我定义好的String类型,虽然Object是GOD,当却不是我要的那个范围。。。自然不让通过
其实这个可以打个比喻~我希望我定义的集合范围是半径为2的圆。可我创建的对象,也就是我真正定义的集合范围是半径为4的圆。用我们平时的眼光去看待,4那么大的圆包含了2,情理之中,可我定义的范围却不需要那么多,多出的部分是我不需要的。所以就会不安全,不安全就会报错。。
而我们在泛型中会使用到Object的时候 是数据类型不确定的时候 为了方便扩展才使用!但并不是说两边可以一个Objct,一边是别的类型,它是定义一个范围,让我们更方便和安全使用。
作者:
llwttkl598
时间:
2013-7-13 08:47
“泛型类型”包括构造类型和泛型类型定义。“约束”是加在泛型类型参数上的限制。当你限制一个类型后,准备创建对象,但object并不是所需要的类型,就会出现无法得到想要类型的情况。
object的使用,是在不确定类型的情况下,一般多用于多态上的。
作者:
"O_忆_O
时间:
2013-7-13 10:04
白_蓝(八公) 发表于 2013-7-13 01:41
泛型的安全机制使运行时错误转移到了编译时期,主要是为了避免强转时出现的麻烦。
数据类型 变量名 ;; ...
差不多有些明白了!谢谢
作者:
张承富
时间:
2013-7-13 20:04
通俗的来讲,假如你左边是动物,右边是猫,这样,你左边想弄一个动物园,但是右边接收的只有猫,肯定不行。
然后,你左边是猫,右边是动物,你想办个猫宠物店,结果里面有别的动物,也是不行的。
作者:
280270738
时间:
2013-7-13 21:16
java泛型就是为了解决类型转换的安全问题的。还有就是可以自定义泛型类和方法来减少代码的重复。
作者:
左手神刀
时间:
2013-7-13 22:49
a给1号纸箱上面贴了一个标签上面写着“装衣服”,
a告诉b说: 你去打一桶水来倒进1号箱里面,
b把水打来了,往纸箱里面倒的时候傻眼了。纸箱能装水吗? 于是他就开始思考,一直思考,一直思考,一直。。。。。。。。b疯了!!(异常了!!!!!!)
所以两边都要一样才行。
作者:
左手神刀
时间:
2013-7-13 22:51
实在不好意思!!!哥们就是这么理解泛型的 呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2