java泛型(六)、泛型中要注意的问题
参考:java核心技术
这些问题在前面也顺带提到了,现在总的来说一下。
大多数这些需要注意的问题,都是由类型擦除引起的。
一、基本类型
不能用类型参数替换基本类型。就比如,没有ArrayList<double>,只有ArrayList<Double>。因为当类型擦除后,ArrayList的原始类型变为Object,但是Object类型不能存储double值,只能引用Double的值。
二、运行时类型查新
举个例子:
public class Test10 {public static void main(String[] args) {//ArrayList<String> arrayList1=new ArrayList();arrayList1.add("1");//编译通过arrayList1.add(1);//编译错误String str1=arrayList1.get(0);//返回类型就是StringArrayList arrayList2=new ArrayList<String>();arrayList2.add("1");//编译通过arrayList2.add(1);//编译错误Object object=arrayList2.get(0);//返回类型就是Objectnew ArrayList<String>().add("11");//编译通过new ArrayList<String>().add(22);//编译错误String string=new ArrayList<String>().get(0);//返回类型就是String}}