快速业务通道

Eclipse V3.1中的Java泛型支持 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
选中时 ,将保留“raw”(非泛型)参数,而不是推断出正确的泛型参数类 型。

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

图 6. Preview the generic refactoring

Eclipse V3.1中的Java泛型支持(4)

时间:2010-12-02 IBM Neal Ford

更新后的代码如下:

清单 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. 针对注释的快速修复和内容帮助扩展

快速帮助特性

Eclipse V3.1 已经添加了快速帮助以促进 Java 5 中的泛型支持。请考虑这个普通的for() 循环,参见清单 3 中的printEmployees() 方法。

清单 3. for() 循环

public void  printEmployees(List<Employee> emps) {   for (int i  = 0; i < emps.size(); i++)     System.out.println (emps.get(i)); }

除了对泛型的支持外,Java 5 现在也支 持 for...each 循环。快速帮助建议将 for loop 变成 for...each,变化后的代码如清单 4 所示。

清单 4. for...each 循环

public void  printEmployees(List<Employee> emps) {   for  (Employee emp : emps)     System.out.println(emp); }

这个版本由于完全删除了 i 变量和 get() 方法调用而变得清洁 多了。

Eclipse V3.1中的Java泛型支持(5)

时间:2010-12-02 IBM Neal Ford

泛型类型

Eclipse V3.1 为了扩展到泛型类型而扩大了对 类型操作的支持。这意味着:

泛型类型能够被安全地重命名。

类 型变量能够被安全地重命名。

泛型方法能够从泛型代码中抽象出来或者 嵌入泛型代码。

代码帮助可以自动将合适的类型参数插入参数化的类型 中。

Eclipse 中的搜索工具对于泛型类型已经具有了更高的智能性。请 考虑如下代码:

清单 5. 泛型类型

public void  doEmployeeAnalysis() {   List<Employee> empList = new  ArrayList<Employee>(5);   List<Date> hireDates  = new ArrayList<Date>(5);   List<Integer>  departments = new ArrayList<Integer>(10);   List<?  extends Employee> allMgrs = new ArrayList<Manager> (5);   . . .

如果您选中第一个 List<Employee> 声明并且选择 Search > References > Project ,Eclipse 将显示给您所有的list 声明。

图 8. Eclipse 在寻找泛型 引用方面已经变得聪明

您也可以通过 Search 窗口隐藏良好的特性来过滤这些结果。如果您访问 Search 窗口菜单(在右上角,最小化和最大化按钮的旁边),您可以找到泛型 感知的过滤选项

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号