一、泛型的概念
List list = new ArrayList();
list.add("corn");
String name = (String) list.get(0);
1、这里将一个对象放入集合中,集合不会记住次对象的类型,当再次从集合中取出此对象时,该对象的编译类型编程了Object类型,但是其运行时的类型依然为其本身类型。
2、在取出集合元素时,需要人为强制类型转化到具体的目标类型,且很容易出现"java.lang.ClassCastException"的异常。
二、什么是泛型
泛型,即“参数化类型”,顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型参数),然后在使用/调用时传入具体的类型(类型实参)
List<String> list = new ArrayList<String>();
三、自定义泛型接口、泛型类和泛型方法
在泛型接口、泛型类和泛型方法的定义过程中,常见的如T、E、K、V等形式的参数常用于表示泛型形参,由于接收来自外部使用时候传入的类型实参。对于不同传入的类型实参,生成的相应对象实例的类型都是一样的,在类型上我们可以理解成多个不用的泛型类型。