目录
一、泛型介绍
二、泛型的语法
2.1 泛型的声明
2.2 泛型的实例化
三、泛型使用的注意事项和细节
四、自定义泛型
4.1 基本语法
4.2 注意细节
使用传统方法的问题分析
1.不能对加入到集合ArrayList中的数据类型进行约束(不安全)
2.遍历的时候需要进行类型转换,如果集合中的数据量较大,对效率有影响
泛型的好处
1.编译时会检查添加元素的类型,提高了安全性
2.减少了类型转换的字数,提高效率
3.不再提示编译警告
一、泛型介绍
泛(广泛)型(类型)
1.泛型又称参数化类型,是JDK5.0出现的新特性,解决了数据类型的安全型问题
2.在类声明或实例化时只要指定好需要的具体类型即可
3.Java泛型可以保证如果程序在编译时没用发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮
4.泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型
二、泛型的语法
2.1 泛型的声明
class 类 { }
interface 接口 { }
说明:1.其中的K,V,T不代表值,而是表示类型; 2.任意字母都可以,常用T表示,是Type的缩写
2.2 泛型的实例化
class 类
{ } interface 接口
{ } 说明:1.其中的K,V,T不代表值,而是表示类型; 2.任意字母都可以,常用T表示,是Type的缩写
2.2 泛型的实例化
要在类名后面指定类型参数的值(类型)
1. List
2. Iterator
三、泛型使用的注意事项和细节
1.给泛型指向数据类型时,要求是引用类型,不能是基本数据类型
2.在给泛型指定具体类型后,可以传入该类型或者其子类类型
3.泛型使用形式
①List
②List
③如果这样写 List list3 = new ArrayList();默认给它的泛型是Object
四、自定义泛型
4.1 基本语法
class 类名 { //...表示可以有多个泛型
成员
}
4.2 注意细节
class 类名
{ //...表示可以有多个泛型 成员
}
4.2 注意细节
1.普通成员可以使用泛型(属性、方法)
2.使用泛型的数组不能初始化
3.静态方法中不能使用类的泛型
4.泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)
5.如果在创建对象时没用指定类型,默认为Objcet
4.3 自定义泛型接口4.3.1 基本语法
interface 接口名
{ }
4.3.2 注意细节
1.接口中,静态成员也不能使用泛型()
2.泛型接口的类型,在继承接口或者实现接口时确定
3.没有指定类型,默认为Object



