泛型
首先来聊聊什么是泛型,我们知道Java集合类是支持任意类型的数据的,比如List、Map等这是集合类强大的地方,但是我们需要使用一种机制来规范我们声明的某一集合类使用的类型,这就用到了泛型。
泛型,也叫做参数化类型,类名后使用Item来定义类型参数,它是一个象征性的占位符
例子
来看个例子,也是最常用的例子
public static void fanxingtest(){
List arrayList=new ArrayList();
arrayList.add("string");
arrayList.add(12345);
String str=(String)arrayList.get(0);
String num=(String) arrayList.get(1);
System.out.println(str);
System.out.println(num);
}
运行效果:
会报无法转型的错误,这是出现在运行时的错误。当然能自己进行类型转换来解决,但并不是理想的解决方式。
使用泛型:
List<String> arrayList=new ArrayList();
然后就会在编译时就会进行检查:
注意
泛型是用于编译阶段的,并不是说改变了类型,只是一种占位符,用于在编译阶段进行标识,告诉编译器对应的类型用于检查。一旦通过编译阶段,到达运行阶段,泛型就会失效。主要用于解决类型安全的问题。我觉得理解到泛型是一种占位符就能够举一反三的理解泛型类、泛型方法、泛型接口了。