这些被称为
Generics。
一般来说,这些启用类型(类和接口)在定义类,接口和方法时是参数。
使用泛型代码比使用非泛型代码有很多好处,如Java教程中所示:
>编译时更强大的类型检查。如果代码违反类型安全性,Java编译器将强类型检查应用于通用代码并发出错误。修复编译时错误比修复可能难以找到的运行时错误更容易。
例如:
// without Generics
List list = new ArrayList();
list.add("hello");
// With Generics
List list = new ArrayList();
list.add("hello"); // will not compile
>使程序员能够实现通用算法。通过使用泛型,程序员可以实现对不同类型的集合进行工作的通用算法,可以自定义,并且类型安全且易于阅读。
>消除演员。
例如,没有泛型的下面的代码片段需要转换:
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
当重写使用泛型时,代码不需要转换:
List list = new ArrayList();
list.add("hello");
String s = list.get(0); // no cast