这些称为泛型。
通常,这些在定义类,接口和方法时使 类型 (类和接口)成为参数。
与使用非泛型代码相比,使用泛型有很多好处,如Java教程中所示:
- 在编译时进行更强的类型检查。 Java编译器对通用代码进行强类型检查,如果代码违反类型安全性,则发出错误。修复编译时错误比修复运行时错误容易,后者可能很难找到。
例如:
// without GenericsList list = new ArrayList();list.add("hello");// With GenericsList<Integer> list = new ArrayList<Integer>();list.add("hello"); // will not compile使程序员能够实现通用算法。 通过使用泛型,程序员可以实现对不同类型的集合工作的泛型算法,可以对其进行自定义,并且类型安全且易于阅读。
消除演员阵容。
例如,以下不带泛型的代码段需要强制转换:
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); // no cast


