泛型总结

什么是泛型?

所谓泛型就是允许在定义类,定义接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型.这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量,创建对象时确定,传入实际的类型参数,也称为类型实参。)

泛型的引入背景

集合容器内在设计阶段/声明阶段不能确定这个容器到底是实际存储的是什么类型的对象,所以在jdk1.5之前只能把元素类型设计为Object
jdk1.5之后使用泛型来解决,因为这个时候处理元素的类型不确定,其他部分是确定的,例如关于这个元素如何保存如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。
Collection ; List Arraylist.这个就是类型参数,称为泛型;
这样设计可以解决元素存储的安全性问题,好比商品,药品标签,不会弄错。
解决了获取数据元素时需要类型强制转换的问题,不用每回拿商品,药品都要辨别。

在这里插入图片描述

在这里插入图片描述

在集合中使用泛型的总结:

1.集合接口或集合类在jdk5.0时都修改为带泛型的结构。
2.在实例化集合类时,可以指明具体的泛型类型。
3.指明完以后在集合,类或接口中,凡是定义类或接口时,内部结构,(比如方法;构造器;属性等;)使用到类的泛型的位置都指定为实例化的泛型类型。
4.注意点:泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型,拿包装类替换。
5.如果实例化时没指明泛型的类型,默认类型为Object类型。
6.自定义泛型类,泛型接口,泛型方法
class Order {}
interface Order {}
public List copyList(E e){};
7.泛型在继承上的体现

class NewOrder extends Order {}
class NewOrder extends Order {}

8.带限制条件通配符的使用

通配符?
类A是类B的父类,G<A>和G<B>是没有关系的,二者的共同父类是G<?>    
对于G<?> 创建的对象 不能向其内部添加数据 除了添加null
可以读取,但是不能添加
有限制条件的通配符
? extends A: G<?extends A>可以作为G<A>和G<B>的父类,其中B是A的子类
? super A:G<?extends A>可以作为G<A>和G<B>的父类,其中B是A的父类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值