快速修复特性
每当 Eclipse 要给您的代码建议一种改进时,Eclipse 的快速修复特性就显示为编辑器窗口左侧边栏上的一个灯泡。在清单 1 中的代码中,您将会看到多个快速修复。
图 3. 快速修复灯泡指示您的代码待改进

图 4. 快速修复指示什么应该被通用化

为了定位快速修复建议,移至重构菜单。Eclipse 中很多重构与 Java 5 中的泛型直接相关。“Infer Generic Type Arguments”重构将给列表增加泛型支持。 第一个对话框允许您选择选项。
图 5. Infer Generic Type Arguments choices 对话框

Eclipse 中的大多数重构中,您都可以预览您的类将发生什么变化。点击这个对话框上的 Preview 按钮将出现图 6 所示的对话框。
图 6. Preview the generic refactoring

清单 2. 更新后的代码
List<Employee> empList = new ArrayList<Employee>(5); empList.add(new Employee("Homer", 200.0, 1995)); empList.add(new Employee("Lenny", 300.0, 2000)); empList.add(new Employee("Waylon", 700.0, 1965)); empList.add(new Manager("Monty", 2000.0, 1933, empList.get(2)));
代码发生了两个有趣的变化。第一 —— 也是最明显的 —— List 和 ArrayList 声明现在是 Employee 类型的泛型。第二 —— 不太明显 —— 代码最后一行发生的变化。您观察一下 Manager 类的原来的 empList 添加,它的最后一个参数需要针对 Assistant 域强制类型转换为 Employee。而 Infer 重构足够聪明,它可以删除现在不必要的类型强制转换。在介绍完快速修复之前,Eclipse 还在 Java 5 支持中增加了另外一个有趣的方面:您可以得到为方法添加注释的建议,比如 @Override。您还具有针对注释的内容帮助。
图 7. 针对注释的快速修复和内容帮助扩展

