1.泛型的概念。
就是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型(也可以将泛型看作是一个变量,用来接收数据类型)
E e:element 元素’
使用泛型的优缺点:
【优点】:避免了类型转换的麻烦,存储的是什么类型,取出来的就是什么类型;把运行期出现的异常(就是运行后抛出的异常),提升到了编译期(也就是写代码的时候直接会报错)
【缺点】:泛型是什么类型,就只能存储什么类型的数据。
*不使用泛型时,默认的类型就是object类型,集合就可以存储任意类型的数据。但是这样不安全,因为你只能使用object的方法,要使用具体数据类型专有的方法就必须向下转型,所以不安全。
2.定义和使用含有泛型的类
定义格式:修饰符 class 类名<代表泛型的变量>{ }
3.定义和使用含有泛型的方法
定义格式:修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }
4. 定义和使用含有泛型的接口
定义格式:修饰符 interface 接口名<代表泛型的变量> { }
实现:(1)定义实现类时确定泛型的类型。
(2)接口使用什么泛型,实现类就使用什么泛型,类跟着接口走。也就是相当于定义一个含有泛型的类,创建对象的时候确定该泛型的类型
5.泛型通配符
?:可以代表任意的数据类型 但是不能创建对象使用,只能作为方法的参数使用