迭代泛型
泛型使用处理一些实体(比如 List)的特殊语法增强了 Java 语言,您通常可能希望逐个元素地处理这些实体。举例而言,如果想迭代 ArrayList,可以将 清单 3 中的代码重写为:
private void processArrayList(ArrayList<String> theList) { for (String s : theList) { String s = theList.get(aa); } }
此语法适用于任何 Iterable(即实现了 Iterable 接口)的对象类型。
一个参数化的 List
在泛型语法中,创建 List 的代码类似于:
List listReference = new concreteListClass();
E(表示元素)是我之前提到的 “东西”。concreteListClass 是 JDK 中您实例化的类。该 JDK 包含多个 List 实现,但您使用了 ArrayList。您可能看到的泛型类的另一种形式是 Class,其中 T 表示类型。在 Java 代码中看到 E 时,它通常指的是某种类型的集合。当您看到 T 时,它表示一个参数化的类。
所以,要创建一个由 java.lang.Integer 组成的 ArrayList,可以这样做:
List<Integer> listOfIntegers = new ArrayList<Integer>();
原文地址
第20单元:泛型