PECS: provider-extends, consumer-super 如果参数化类型表示一个 T 类型的生产者就使用 <? extends T>;如果是 T 类型的消费者,就使用 <? super T>。 <? extends T>:代表 T 类型,或者 T 的子类; <? super T>:代表 T 类型,或者 T 的父类。 我自己的想象: 如果有一个集合 HashMap,为了通用往集合放元素的时候,当然应该接受 Object 或者它的子类型,所以声明时,应该用 HashMap<? extends T>; 如果要写一个计算方法,为了通用当然不能仅仅用于 Integer 类型,所有的实现了 Number 的类型都应该接受。