1. 泛型概述
什么是泛型,为什么要用泛型?
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
2. 泛型举例
List arrayList = new ArrayList();
arrayList.add("aaaa");
arrayList.add(100);
for(int i = 0; i< arrayList.size();i++){
String item = (String)arrayList.get(i);
}
这段代码是不能执行的,原因也很简单,100并不是字符串,无法强转输出,那如何避免这中问题呢?答案很简单,采用
泛型
。
List arrayList = new ArrayList<String>();
这样的话,我们的arrayList中就只能存储String类型的数据。
3. 泛型的优点
- 编译时,检查添加元素的类型,提高了安全性。
- 减少了类型转换的次数,提高效率。
- 不再提示编译警告
4. 泛型介绍
- 泛型又称参数化类型,是jdk5.0出现的新特性,解决数据类型的安全性问题。
- 在类声明或实例化时只要指定好需要的具体的类型即可。
- Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException 异常,同时代码更加简洁,健壮。
- 泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。
5. 泛型的语法
interface 接口<T>{
} 和 class 类<k,v>