泛型

泛型

1.为什么需要有泛型?(泛型的引入)
没有泛型之前的做法是使用Object接受任意类型,这样在向下转型的过程中会出现类型转换异常,类型转换异常我们可以使用instanceof关键字做判断,但是这样对于集合的遍历来说没有遍历完全,因为集合的特点是能够存储所有的引用类型,而我们知道Object有无数个子类,我们无法对每一个子类做逐一判断,所以安全隐患永远存在,如果不逐一判断,没有安全问题但是不能够完全遍历,所以针对这个问题,JAVA在JDK1.5之后引入了泛型。

2.泛型的设计思想
设计思路:让集合值能够存储一种类型,但是集合能够存储Object任意类型
数组:数组存储相同类型的一组连续的变量
集合就是模仿数组在编译的时候确定类型
参数化类型模仿的是方法

3.泛型的概述
泛型是JDK1.5之后引入一种在编译时期确定类型的参数化类型

public String add(Integer a, String b) {
		String sum = a + b ;
		system.out.println(a);
		system.out.println(b);
		system.out.println(sum);
		return sum;
}

4.泛型的格式
<E , H , T>
a.这里的E(A~Z)必须是引用类型,如果是基本类型,可以考虑包装类类型
b.这里的参数可以有多个
5.泛型的好处
a.消除了黄色警告线,提高了程序的安全性,避免了类型转换异常
b.提高了性能
c.提高了程序的可读性
d.提高了可扩展性和可维护性
e.简化代码

泛型的应用

泛型分类:

泛型类
泛型方法
泛型接口
泛型限定符

泛型类

泛型接口

泛型接口:把泛型定义在接口上
1.在实现接口的时候确定类型
2.在实现接口的时候不确定类型
3.匿名内部类的方式确定类型

泛型方法

泛型方法:把泛型声明在方法上
泛型方法的格式:在方法的声明上添加
注意:
1.泛型方法独立于泛型类或者泛型接口
2.泛型声明可以有多个泛型类型
3.泛型的方法调用的时候确定类型

泛型方法的应用: toArray

泛型限定符

?:表示限定泛型的类型是任意类型
? extends E:表示限定泛型的类型是E或者是E的子类
? super E:表示限定泛型的类型是E或者是E的父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值