原文:https://docs.oracle.com/javase/tutorial/java/generics/why.html
个人译文:
简而言之,范型 就是指在定义类、接口或者方法时,可以将类型(指类或者接口)变成参数。这一点很像在普通方法声明中的形式参数,类型参数(type parameters)可以随着不同的输入,让你重复使用相同的代码。与普通方法声明中不同的是,传给形式参数的是变量值,而传给类型参数的是类型(类或则接口)
使用范型的代码将比不使用范型的代码具有以下好处:
1.在编译期执行更加强健的类型检查。
Java编译器对范型代码使用更佳强健的类型检查,如果违反了类型安全,则将报告错误。修正编译时错误比修正运行期错误简单多了,运行期错误很难定位。
2.消除类型转换的声明
下面没有使用范型的代码片段需要用到类型转换声明。(注意加粗部分)
List list = new ArrayList();
list.add("hello");
String s = (<strong>String</strong>) list.get(0);
而同样的代码,使用了范型后,则不需要类型转换声明。
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0); // 不需要声明类型转换
3.程序员可以实现范型算法
用了范型后,程序员可以实现针对不同类型的集合的范型算法,该算法可以被定制化,并且是类型安全的、更佳易于阅读。