java泛型笔记

本文介绍了Java泛型的概念,如何在1.5版本后通过泛型改进集合类的使用,包括泛型类型的规定(如不能用基本数据类型)、泛型类的构造和实例化、泛型在继承中的行为以及通配符的应用。
摘要由CSDN通过智能技术生成

泛型:允许在定义类、接口时通过一个标识表示类中某个属性的类型或者某个方法的返回值及参数类型,这个类型参数使用时创建对象时确定。
泛型引入背景:object类型太宽泛 1.5版本后引入
集合在使用泛型的总结:
①集合接口或集合类在jkd1.5时修改为带泛型的结构;
②在实例化集合类时可以指明具体的泛型类;
③指明完以后,在集合类或者接口中凡是定义类或者接口时 内部结构使用到类的泛型的位置 都指定为实例化的泛型类型;
④注意点:泛型的的类型必须是类 不能是基本数据类型 需要用到基本数据类型的位置 拿包装类封装;
⑤如果实例化时没有指定泛型的类型 默认是object
自定义泛型:
注意点:
1.泛型类可能有多个参数,此时应该多个参数放到同一个尖括号里
2.泛型类的构造器如下 public generClass[]
3.实例化后 操作原来泛型位置的结构必须与指定泛型类型一致
4.泛型不同的引用不能相互赋值;
5.泛型如果不指定 将被擦除 泛型的类型将按照object处理 但是不等价于object 经验:要用都用 否则不用
6.如果泛型结构是一个抽象类或者接口 则不能创建泛型的对象;
7.jdk1.7后有泛型类型判断
8.泛型必须用类不能用基本数据类型;
9.在类/接口上声明泛型,在本类或者本接口即代表某种类型 可以作为非静态属性的类型,非静态方法的参数类型,非静态方法的返回值类型 但静态方法不能使用类的泛型;
10.异常类不能使用泛型;
11.不能直接new 泛型 但是可以强转;
12.父类有泛型,子类可以选择保留泛型或者指定泛型类型;
子类不保留父类的泛型 按需实现;
》没有类型 擦除
》具体类型
子类保留父类的泛型:泛型子类
》全部保留
》部分保留
结论 子类必须是富二代,即子类除了指定或者保留父类的泛型 还可以自己增强泛型
泛型在继承上的体现:
泛型不同不能继承,泛型相同且类之间存在子父类关系可以;
通配符:?
使用通配符后写操作受限,但是读操作正常,只能添加null;
有限制条件的通配符
extends a
  G<? extend A> 可以作为G<A> 和G<b>的父类 其中b是a的子类
?super a
  G<? super A> 可以作为G<A> 和G<b>的父类 其中b是a的父类
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值