Java5.0的新特性之一是引入了泛型类型和泛型方法。一个泛型类型通过使用一个或多个类型变量来定义,并拥有一个或多个使用一个类型变量作为一个参数或者返回值的占位符。例如,类型java.util.Vector<E>是一个泛型类型:一个Vector对象,其元素的类型被占位符E描述。这个类型有一个名为add()的方法,被声明为有一个类型为E的参数,同时,有一个get()方法,返回值被声明为E类型。
为了使用泛型类型,你应该为类型变量详细指明实际的类型,形成一个就像Vector<String>类似的参数化类型。[1]指明这些额外的类型信息的原因是编译器据此能够在编译期为您提供很强的类型检查,增强您的程序的类型安全性。举个例子来说,您有一个只能保持String对象的List,那么这种类型检查就能够阻止您往里面加入String[]对象。同样的,增加的类型信息使编译器能够为您做一些类型转换的事情。比如,编译器知道了一个Vector<String>有个get()方法,其返回值是一个String对象,因此您不再需要去将返回值由一个Object强制转换为String。
里面的方里面法其数据类型都使用的是Object,就是说可以把任何的类型的对象,扔进去,但是在取出来的时候需要做强制类型转换,转型到原来的类,ArrayList<ClassA>,用到泛型的话,里面就只能放ClassA类型的对象,放其他类型的对象在编译时就会产生警告...