为什么使用泛型

简言之,在定义类,接口或是方法的时候泛型能够使类型(类和接口)成为参数。跟我们熟悉的方法中定义的形参很相似,类型参数提供了一种方式让你在面对不同输入的时候能够重用同一份代码。不同的是形参传入的是值,但是类型参数传入的是类型。

使用泛型代码比非泛型代码有许多好处:

- 在编译时期更强的类型校验

如代码违反类型安全性,java编译器会在泛型代码和问题错误上应用强类型检验。解决编译期错误比解决运行期错误简单多了,因为运行期错误比较难查找。

  • 消除强制转换

下面没有用到泛型的代码需要强制转换

 List list = new ArrayList();
 list.add("hello");
 String s = (String)list.get(0);

当用泛型重写时,代码不需要强制转换

 List<String> list = new ArrayList<String>();
 list.add("hello");
 String s = list.get(0);
  • 使程序员实现泛型算法

通过使用泛型,程序员可以实现泛型算法来作用到不同类型,可以自定义,类型安全并且易于读取的集合。