8.1.1泛型概述先定一个小目标!了解泛型概述,能够说出什么是泛型yx.ityxb.com
yx.ityxb.com 8.1.1 泛型概述 先定一个小 目标! 了解泛型概述,能够说出什么是泛型
8.1.1泛型概述泛型的概念泛型是在JDK5中引入的一个新特性,其本质是参数化类型,也就是将具体的类型形参化,参数化的类型(可以称之为类型形参)在使用或者调用时传入具体的类型(类型实参),类似于调用方法时传入实参才确定方法形参的具体值。泛型的声明由一对尖括号和类型形参组成,类型形参定义在尖括号中间,定义类、接口和方法时使用泛型声明,定义出的类、接口和方法分别称为泛型类、泛型接口和泛型方法。yx.ityxb.com
yx.ityxb.com 8.1.1 泛型概述 泛型是在JDK 5中引入的一个新特性,其本质是参数化类型,也就是将具体的类 型形参化,参数化的类型(可以称之为类型形参)在使用或者调用时传入具体的 类型(类型实参),类似于调用方法时传入实参才确定方法形参的具体值。泛型 的声明由一对尖括号和类型形参组成,类型形参定义在尖括号中间,定义类、接 口和方法时使用泛型声明,定义出的类、接口和方法分别称为泛型类、泛型接口 和泛型方法。 泛型的概念
8.1.1泛型概述》泛型的定义使用泛型编程,会在使用或者调用时传入具体的类型时才确定最终的数据类型,所以集合需要存储什么类型的数据,在创建集合时传入对应的类型即可。定义泛型时类型形参由一对尖括号(<>)包含在中间,使用或者调用泛型时,需要将类型实参写在尖括号(<>)之间JDK5之后的类库中很多重要的类和接口都引入了泛型,例如集合体系中的类和接口。下面分别演示未引入泛型和使用泛型编程的区别,体验泛型具体有什么好处yx.ityxb.com
yx.ityxb.com 8.1.1 泛型概述 泛型的定义 使用泛型编程,会在使用或者调用时传入具体的类型时才确定最终的数据类型,所以集 合需要存储什么类型的数据,在创建集合时传入对应的类型即可。 定义泛型时类型形参由一对尖括号(<>)包含在中间,使用或者调用泛型时,需要将 类型实参写在尖括号(<>)之间。 JDK 5之后的类库中很多重要的类和接口都引入了泛型,例如集合体系中的类和接口。 下面分别演示未引入泛型和使用泛型编程的区别,体验泛型具体有什么好处
8.1.1泛型概述未引入泛型之前,如果想要创建一个只保存Integer类型的List集合。案例一演示具体代码如下所示。publicclassExample01publicstaticvoidmain(Stringlargs)Il创建一个只保存lnteqer类型的List集合List intList=newArrayListOintList.add(1);intList.add(2);//因为失误存放了Integer类型之外的字符串数据intList.add(3");for(inti=O,i<intList.size;i++)/*因为List里面默认取出的全部Object对象,所以使用之前需要进行强*制类型转换。集合内最后一个元素进行转换时候将出现类型转换异常**Integernum=(Integer)intList.get(0))yx.ityxb.com
yx.ityxb.com 8.1.1 泛型概述 案例一演示 未引入泛型之前,如果想要创建一个只保存Integer类型的List集合。 具体代码如下所示。 public class Example01{ public static void main(String[] args) { // 创建一个只保存Integer类型的List集合 List intList = new ArrayList(); intList.add(1); intList.add(2); //因为失误存放了Integer类型之外的字符串数据 intList.add("3"); for (int i = 0; i < intList.size(); i++) { /*因为List里面默认取出的全部Object对象,所以使用之前需要进行强 * 制类型转换。集合内最后一个元素进行转换时候将出现类型转换异常 * */ Integer num=(Integer)intList.get(i); } } }
8.1.1泛型概述案例一代码分析在案例一的代码中,第4行代码想创建一个只保存Integer类型的List集合,第5~8行代码往集合中存放数据,由于存放数据时并没有出现编译异常,操作者认为存入的数据类型都符合要求,但是在执行第13行代码时却会出现异常。因为在第8行代码中存放了Integer类型之外的字符串数据。接下来使用泛型优化案例一代码。yx.ityxb.com
yx.ityxb.com 8.1.1 泛型概述 案例一代码分析 在案例一的代码中,第4行代码想创建一个只保存Integer类型的List集合,第5~8 行代码往集合中存放数据,由于存放数据时并没有出现编译异常,操作者认为存 入的数据类型都符合要求,但是在执行第13行代码时却会出现异常。因为在第8 行代码中存放了Integer类型之外的字符串数据。接下来使用泛型优化案例一代码