泛型基础
为什么引入泛型
- 装入数据的类型都被当作Object对待,从来丢失自己实际类型,获取数据时需要强制转型
- 将类型转换时的类型检查从运行时提前到了编译时,具有更好的可读性和安全性
- 代码可以被不同类型的对象重用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import java.util.ArrayList;
public class GenericTest {
public static void main(String[] args) {
ArrayList arraylist = new ArrayList(); //定义ArrayList集合
//ArrayList<String> arraylist = new ArrayList<String>();
arraylist.add("11"); //存入字符串类型
arraylist.add("22");
//arraylist.add(33); 使用泛型编译期类型检查
for (int i = 0; i < arraylist.size(); i++) {
/*存入数据均作为Object看待,取出必须强制转换
33无法输出,Interger对象无法直接转换为String,需要调用toString方法
使用泛型则不需要强制转换 */
String name = (String) arraylist.get(i);
System.out.println("name:" + name);
}
}
}
泛型类:实例化类的时候指明泛型的具体类型
1
2泛型方法:调用方法的时候指明泛型的具体类型
- 泛型接口