什么叫做泛型:
在JDK1.4之前,容器什么类型的对象都可以存储,但是在取出时,需要用到对象的特有内容时,需要金次那个向下转型,但是对象类型不一致,导致了向下转型出现ClassCastException异常;
在JDK1.5之后解决了这个问题,在定义集合时,就直接明确集合中存储元素的具体类型。这样,编译器在编译时,就可以直接对集合中存储的对象的类型进行检查。
一旦发现类型不匹配,就编译失败,这种技术就叫做泛型技术。
泛型好处:
- 运行时期的问题转移到了编译时期,可以更好的让程序员发现并解决问题。
- 避免了向下转型的麻烦
总结:泛型是应用在编译时期的一项安全机制。
泛型的擦除:
编译器通过泛型对元素的类型进行转换,只要检查通过,就会生成class文件,但是在生成的class文件中,就将泛型标识去掉了。
泛型的表现:
- 泛型在集合框架中的应用的范围很大,只要在类或接口在描述的时候右边定义了<>,就需要泛型;
- 其实是容器在不确定操作类型元素的情况下,对外提供的一个参数<>,使用容器时,只需要将具体的类型实参传递给该参数即可。
例如:
List<Integer> list = new ArrayList<Integer>();