?通配符和Object都可以接受任意类型。
List<Object> l = new List<Object>();此时List集合能接收任意类型;
但是用?定义泛型时就可以限定List接收的类型。比如:
class Person{
......
}
class Student extends Person{
....
}
当定义一个ArrayList<? extends Person> al = new ArrayList<? extends Person>();此时ArrayList集合中只接收Person类和Person的子类Student...可能还有更多子类;
当定义成这样ArrayList<? super Student> al = new ArrayList<? super Student>();此时ArrayList集合中只接收Student类和Student的父类 |