pecs
- 全稱是
Producer Extends Consumer Super
- 使用extends確定上界的只能是生產者,只能往外生產東西,取出的就是上界類型。不能往裏塞東西。
- 使用Super確定下界的只能做消費者,只能往裏塞東西。取出的因爲無法確定類型只能轉成Object類型看代碼更好理解。
代碼
List<? extends Number> numbers = new ArrayList();
numbers.add(4); //報錯
Number number = numbers.get(1);//成功
List<? super Number> strs = new ArrayList<>();
strs.add(123);//成功
Number o = strs.get(1);//報錯
具體說明
上界通配符(Upper Bounded Wildcards)
下界通配符(Lower Bounded Wildcards)