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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢洋 高级黑马   /  2013-3-17 10:51  /  1201 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谢洋 于 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-18 12:32
如果你的问题已经得到解决,请及时将主题改为[已解决],如果还有问题请继续追问,谢谢  发表于 2013-3-17 21:56

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

4 个回复

正序浏览
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的父类型。限定了下限。

       

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ArrayList<E> E就是对象! 这个集合也必须存E的对象!
就像ArrayList<int> 这个集合只能存整数 而不能存字符串一样!
回复 使用道具 举报
黄玉昆 发表于 2013-3-17 10:53
T怎么会有n个父类呢?

我的意思是爸爸、爸爸的爸爸、爸爸的爸爸的爸爸....;不好意,没说清楚
回复 使用道具 举报
T怎么会有n个父类呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马