黑马程序员技术交流社区

标题: 泛型上限下限的疑问,具体是怎么一回事? [打印本页]

作者: 漫步人    时间: 2013-10-26 18:56
标题: 泛型上限下限的疑问,具体是怎么一回事?
extends E: 可以接收E类型或者E的子类型。上限。
super E: 可以接收E类型或者E的父类型。下限
问题:
public static void print(ArrayList<? extends Person> al),
<? extends Person>也不算是定义了具体的类型,那么为什么它不用强转就可以编译和运行了呢?


作者: 未知数|X|    时间: 2013-10-26 21:25
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
上面你自己不是写的很清楚了吗,E只是相当于参数类型,并不是具体的对象什么的,你用T代替也行啊,<? extends Person>代表的意思是类型是Person或者Person的子类对象
作者: 终结者    时间: 2013-10-26 22:55
?是通配符,<?extends Person>表示接收Person及Person的子类属于上限,大致的意思是,你要想使用这个方法你必须要听从我的安排,必须传Person及Person的子类,传进来的使用的类型不用说肯定是Person类型(引用父类型)所以不用强转




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