黑马程序员技术交流社区
标题:
泛型疑问?
[打印本页]
作者:
谢洋
时间:
2013-3-17 10:51
标题:
泛型疑问?
本帖最后由 谢洋 于 2013-3-17 10:53 编辑
如:
1、ArrayList<E> 定义的泛型,泛编译后E变成Oject?
如果不是,那么怎么反射出add(E e)方法?如果能反出,应该传什么参数组getMethod()?
2、<? extends T>,还个还好理解,但有些泛型定义成< ? super T> ,
如果上面的编译后变成Object还可以理解,T可以有n个父类,那这T编译后会怎么表示,?
被这样定义的泛型,又怎么反射出该类的方法?传什么类型参?
作者:
黄玉昆
时间:
2013-3-17 10:53
T怎么会有n个父类呢?
作者:
谢洋
时间:
2013-3-17 11:06
黄玉昆 发表于 2013-3-17 10:53
T怎么会有n个父类呢?
我的意思是爸爸、爸爸的爸爸、爸爸的爸爸的爸爸....;不好意,没说清楚
作者:
HM张超
时间:
2013-3-17 12:42
ArrayList<E> E就是对象! 这个集合也必须存E的对象!
就像ArrayList<int> 这个集合只能存整数 而不能存字符串一样!
作者:
炉海佳
时间:
2013-3-17 21:39
1.ArrayList<E> 定义的泛型,泛编译后E变成Oject?
E代表的是类型,可以是String 可以是Integer 等等 例如
ArrayList<String> al = new ArrayList<String>();//定义泛型为String类型
al.add("abc1");//将String类型字符串abc1添加到集合中
//al.add(2);//这里就不行,集合已经定义了泛型是String ,就不能存int数字
2.<? extends T>,还个还好理解,但有些泛型定义成< ? super T>
? extends E: 可以接收E类型或者E的子类型。限定了上限。
? super E: 可以接收E类型或者E的父类型。限定了下限。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2