Android 学习笔记(1)之泛型总结

1,为什么我们需要泛型?
适用于多种数据类型执行相同的代码
泛型中的类型在使用时指定,不需要强制类型转换
2,泛型类的定义
引入一个类型变量T(其他大写字母都可以,不过常用的就是T,E,K,V等等),并且用<>括起来,并放在类名的后面。泛型类是允许有多个类型变量的
3,泛型方法辨析
泛型方法 必须要有 否则是普通方法
4,限定类型变量(可用于方法,类)
extends左右都允许有多个,如 T,V extends Comparable & Serializable
注意限定类型中,只允许有一个类,而且如果有类,这个类必须是限定列表的第一个。例如T,V extends ArrayList & Serializable ,ArrayList就是类,后面都是接口
5,泛型中的约束和局限性
不能用基本类型实例化类型参数 List 不行
运行时类型查询只适用于原始类型 instanceof 不行
不能在静态域或方法中引用类型变量 private static T instance;不行
不能创建参数化类型的数组
不能实例化类型变量 new T() 不行
不能捕获泛型类的实例
6,泛型类型的继承规则
Apple 继承自 Fruit
但是Pair< Apple >和Pair < Fruit > 没任何关系
泛型类可以继承或者扩展其他泛型类
7,通配符类型
? extends X 表示类型的上界,类型参数是X的子类 不能set方法,get为 X类型
? super X 表示类型的下界,类型参数是X的超类 能set x的子类,get为Object
8,无限定的通配符 ?
表示对类型没有什么限制,可以把?看成所有类型的父类,如Pair< ?>;
9,类型擦除
对于运行期的Java语言来说,ArrayList<int>与ArrayList<String>就是同一个类,所以泛型技术实际上是Java语言的一颗语法糖,Java语言中的泛型实现方法称为类型擦除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值