? 通配符。也可以理解为占位符。
泛型的限定:
? extends E :可以接受E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E类型的父类型。下限。
import java.util.*;
class GenericDemo5
{
public static void main(String[] args)
{
ArrayList
al=new ArrayList
();
al.add(new Person("abc1"));
al.add(new Person("abc2"));
al.add(new Person("abc3"));
printColl(al);
ArrayList
al1=new ArrayList
();
al1.add(new Student("abc--1"));
al1.add(new Student("abc--2"));
al1.add(new Student("abc--3"));
printColl(al1);//ArrayList
al=new ArrayList
(); } public static void printColl(ArrayList
al){ Iterator
it=al.iterator(); while(it.hasNext()) { System.out.println(it.next().getName()); } } } 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); } }
运行结果为:
abc1
abc2
abc3
abc--1
abc--2
abc--3