-----------------------------------------------
1)泛型通配符<?>
任意类型,如果没有明确,那么就是Object以及任意的Java类了
Collection<?> c1 = new ArrayList<Object>();
Collection<?> c2 = new ArrayList<String>();
Collection<?> c3 = new ArrayList<Integer>();
Collection<?> c4 = new ArrayList<Student>();
2)?extends E
•向下限定,E及其子类
Collection<? extends Animal> c1 = new ArrayList<Animal>();
Collection<? extends Animal> c2 = new ArrayList<Cat>();
Collection<? extends Animal> c3 = new ArrayList<Dog>();
Collection<? extends Animal> c4 = new ArrayList<mouse>();
// Cat Dog Mouse 均是Animal的子类
3)?super E
•向上限定,E及其父类
Collection<? super Animal> c1 = new ArrayList<Animal>();
Collection<? super Animal> c1 = new ArrayList<Object>();
// Object 均是Animal的父类