Java基础 (7) - 泛型

能解决
1.集合中防止数据转换异常
2.参数通用化 -“模板”

  • 适用于多种数据类型执行相同的代码
  • 泛型中的类型在使用时指定
  • 泛型归根到底就是“模版”

优点

  • 使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。
  • 接受宽泛的数据类型

泛型主要在集合类中使用,eg:
List<String> list = new ArrayList<String>();
String s = list.get(0); //取出来的数据直接就是泛型规定的类型,不用做类型转化,从而避免类型转化异常

自定义泛型
泛型类 只能用在成员变量上,只能使用引用类型
泛型接口 只能用在抽象方法上
泛型方法 返回值前面加上<T>

?是通配符,泛指所有类型,常定义一个引用变量
? extends T 指T类型或T的子类型
? super T   指T类型或T的父类型
参考:https://www.cnblogs.com/jpfss/p/9929045.html

Android常用场景是适配器和数据解析(Retrofit+Rxjava)
参考:
https://www.cnblogs.com/lwbqqyumidi/p/3837629.html
https://segmentfault.com/a/1190000014824002
https://www.jianshu.com/p/b25966f1d699