9.0 第9章 泛型 前言
第9章 泛型 前言
本章要点
- 编译时类型检查的重要性
- 使用泛型实现编译时进行类型检查
- 定义泛型接口、泛型类
- 派生泛型接口、泛型类的子类、实现类
- 使用类型通配符
- 设定类型通配符的上限
- 设定类型通配符的下限
- 设定泛型形参的上限
- 在方法签名中定义泛型
- 泛型方法和类型通配符的区别与联系
- 泛型方法与方法重载
Java 8
改进的类型推断- 擦除与转换
- 泛型与数组
本章概述
Java 5增加泛型
本章的知识可以与前一章的内容补充阅读,因为Java 5增加泛型支持在很大程度上都是为了让集合能记住其元素的数据类型。
没有泛型之前集合中的对象当成Object处理
在没有泛型之前,一旦把一个对象”丢进”Java
集合中,集合就会忘记对象的类型,把所有的对象当成Object
类型处理。当程序从集合中取出对象后,就需要进行强制类型转换,这种强制类型转换不仅使代码臃肿,而且容易引起ClassCastExeception
异常。
有了泛型集合可以检查元素类型
增加了泛型支持后的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中元素的类型,如果试图向集合中添加不满足类型要求的对象,编译器就会提示错误。
增加泛型后的集合,可以让代码更加简洁,程序更加健壮(Java
泛型可以保证如果程序在编译时没有发岀警告,运行时就不会产生ClassCastException
异常)。
枚举类和反射的泛型
除此之外,Java
泛型还增强了枚举类、反射等方面的功能,泛型在反射中的用法,将在第18章中介绍。
本章不仅会介绍如何通过泛型来实现编译时检查集合元素的类型,而且会深入介绍Java
泛型的详细用法,包括定义泛型类、泛型接口,以及类型通配符、泛型方法等知识