通配符的使用是用于具体的泛型对象或者类型声明,而非具体的类型定义;
比如List<? extends Foo> list,它表示list对象(或者形参对象或返回值)是一个生产者,它只能给外部提供泛型数据,即可以调用list.get()方法,而无法调用list.add(T xx)方法
,因为能调用list.add说明list是一个消费者消费外部数据
通配符的使用是用于具体的泛型对象或者类型声明,而非具体的类型定义;
比如List<? extends Foo> list,它表示list对象(或者形参对象或返回值)是一个生产者,它只能给外部提供泛型数据,即可以调用list.get()方法,而无法调用list.add(T xx)方法
,因为能调用list.add说明list是一个消费者消费外部数据