标题: 关于泛型的限定 [打印本页] 作者: Uncle.Lee 时间: 2013-11-12 20:56 标题: 关于泛型的限定 关于泛型的两种限定:
我把毕老师的视频看了两遍,还是赶脚有点晕菜;
?extends E :上限
? super E:下限
我感觉上下限好像都差不多,那位大神能帮忙我理解他们的区别,,3Q作者: ysunday 时间: 2013-11-12 21:10
?extend E是说只要是继承了E的都可可以
举例来说吧
class Person{}
class Student extends Peson{}
class Teacher extends Person{}
如果这么写<? extends Person>这就是说只要是Person的子类都可以放到这接收,
比如student 和 teacher都可以 就是只要是E的儿子都可可以放在这里<? extend E>代替完是这个样子<Student s> 或者<Teacher t>
? super E是说只要是E的父类都可以,你可以把extends念成 《E的儿子都可以放这》
而把super念成 《E的父亲都可以放这》
举个例子
class Person{}
class Student extends Peson{}
如果写成<? super Student>就是说只要是Student的父类都能接收,比如Person。作者: lichao 时间: 2013-11-12 21:21
?extends E :上限
就是E本身及子类、子类的子类等。如:
public static void printColl(Collection<? extends Person> al)
{
Iterator<? extends Person> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
复制代码
在调用此方法是传递进来的参数只能是Person类及Person的子类、子类的子类等。
? super E:下限
就是E本身及父类、父类的父类等
如: