问号在Java的泛型中可以作为通配符,比如说:

 

// 表示变量list中存放的可以是任意类型
List<?> list;

// 类型必须是Animal的子类或者是孙类
List<? extends Animal> list2;

// 类型必须是Animal的父类或者祖先类
List<? super Animal> list3;

总结一下

 

只有一个问号:?,是表示可以存放任何类型。

? extends A,表示可以存放A的子类或孙类

? super A,表示可以存放A的父类或祖先类