泛型是JDK1.5以后增加的,它可以帮助我们建立类型安全的集合。
集合中可以存储任意类型的对象元素,但是当把一个对象存入集合后,集合会“忘记”这个对象的类型,将该对象从集合中取出时,这个对象的编译类型就一变成了 Object 类型。换句话说,在程序中无法确定一个集合中的元素到底是什么类型,那么在取出元素时,如果进行强制类型转换就很容易出错。此时,我们引入泛型。在容器存储数据,读取数据时避免大量的判断,非常便捷
泛型的本质就是“数据类型的参数化”。我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。
例如下图,在取出时就需要强制转型:
我们加入泛型:
传入String,Integer类型的就会报错,因为这个集合里面只能传入String类型的,取出,也就自然而然不需要强制转型