泛型,简单的说,就是指参数化类型的能力,在未使用泛型之前,如ArrayList类,其中可以存放任意类型的对象,其方法大部分的参数类型都是Object类型,而实际中,我们常常仅需要存储一种类类型,如String类型,以方便进行String类型的操作,(String 类型和Integer类型若同时存于list中则很多操作都不行,如compareTo()方法,需要调用者和参数属于同一个类型)。

为了使容器存储同一种类类型,JAVA泛型机制很好的做到了这一点,不使用泛型,ArrayList对象可存储各种类类型,编译时不会报错,运行时有时会因不恰当的方法调用而出错,使用泛型机制,编译时就能够检测出这种错误.

优点:能够在编译时期检测出错误而不是运行时期,提高了程序的可靠性。

不需要强制类型转换就可以在ArrayList列表中提取出元素。