Java学习(94)Java泛型——泛型概述、泛型的作用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Java泛型——泛型概述、泛型的作用
泛型概述
为什么要使用泛型
在Java中增加泛型之前泛型程序设计使用继承来实现的但是使用继承有坏处
(1) 需要强制转换
(2) 可向集合中添加任意类型的对象存在风险
泛型的使用
List<String> list = new ArrayList<String>();
在Java SE7及以后的版本中构造方法中可以省略泛型类型例如
List<String> list = new ArrayList<>();
多态与泛型
以下代码是否会报错
class Animal{}
class Cat extends Animal{}
List<Animal> list = new ArrayList<Cat>();
答会报错原因是变量声明的类型必须匹配传递给实际对象的类型。
其他错误例子
List<Object> list = new ArrayList<String>();
List<Number> numbers = new ArrayList<Integer>();
学习主要内容
(1) 泛型作为方法参数
(2) 自定义泛型类
(3) 自定义泛型方法
泛型的作用
- 提高Java程序的类型安全
通过前面的学习我们知道在集合中可以添加Object类型的对象如果在不使用泛型的情况下定义了一个ArrayList对象那么各种类的对象都可以添加到集合中。而在该集合中取值时都需要进行强制类型转换可以把取出的对象转换成任意类型但是编译时不报错但是运行时会发生ClassCastException异常。
因此使用泛型可以使编译器知道集合的类型限制在编译期如果添加不同类型的数据就能发现错误。 - 消除强制类型转换
泛型可以消除源代码中的许多强制类型转换这样可以使代码可读性更好并减少出错的机会。