//仅作为学习笔记
/*
? 通配符,也可以理解为占位符
泛型的限定
? extends E : 可以接受E 类型 或者 E 的子类型。(上限定)
? super E : 可以接受E 类型 或者 E 的父类型 (下限定)
*/
import java.util.*;
class Person
{
private String name;
Person(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
class Student extends Person
{
Student(String name)
{
super(name);
}
}
class Test
{
public static void main(String[] args)
{
ArrayList<Student> als = new ArrayList<Student>();
als.add(new Student("one"));
als.add(new Student("three"));
als.add(new Student("two"));
als.add(new Student("four"));
printColl(als);
}
public static void printColl(ArrayList< ? extends Person> al)//泛型限定
{
Iterator<? extends Person > it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}