泛型进阶
00:00
泛型擦除、通配符与边界
1. 类型擦除
List<String> strings = new ArrayList<>();
List<Integer> ints = new ArrayList<>();
// 运行时都是 ArrayList,泛型信息被擦除
2. 通配符
// 上界通配符 — 只读
void printList(List<? extends Number> list) { }
// 下界通配符 — 只写
void addNumbers(List<? super Integer> list) { }
// PECS 原则:Producer Extends, Consumer Super