继承,多态,泛型

3 泛型设计

3.1 使用场景

  • 编译时强类型检查
  • 避免类型强转
  • 实现通用算法 ```java Collections.emptyList(); ArraysList
  1. <a name="7fDUO"></a>
  2. #### 3.2 类型参数命名约定
  3. - E 表示集合元素
  4. - V 表示值
  5. - K 表示键
  6. - T 表示类型
  7. 多个参数 T U R
  8. <a name="T7DCB"></a>
  9. #### 3.3 泛型参数类型
  10. - 单界线
  11. ```java
  12. E extends CharSequence
  13. 读取数据
  14. E super Number
  15. 写入数据
  16. producer extends
  17. consumer super
  • 多界限

    1. <T extends [C|I]> & I1 &I2>
    2. extends 第一个类型允许是具体类,第二个或者后续是接口
  • 泛型方法和有界类型参数

    1. public static <C extends Collection<E>, E extends Serializable> void add(C target, E element)

    3.4 通配符 ?

    1. GenericWildCardsType

    3.5 泛型擦写