泛型是Java SE 1.5的新特性,在Java SE 1.5之前,在没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的本质是:指在定义类或者接口的时候可以为类和接口指定类型形参,在定义变量、定义方法是该类型形参可以当做普通的类型来使用,并且该类型形参在定义变量和创建对象的确定。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
使用泛型的误区:
泛形要求能包容的是对象类型,而基本类型在java里不属于对象。
比如:
List list=new ArrayList();//这里,这样是错误的
list.add(0);
list.add(1);
但是基本类型都有其包装类型,也就是对象类型:
int->Integer
long->Long
….
那么你要想存放基本类型就用其包装类型去实现功能:
List list=new ArrayList();
list.add(0);
list.add(1);