正 文

Eclipse 3.1中的Java泛型支持


www.7dspace.com  更新日期:2005-12-10 2:10:56  七度空间


  快速帮助特性

  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 为了扩展到泛型类型而扩大了对类型操作的支持。这意味着:

  • 泛型类型能够被安全地重命名。
  • 类型变量能够被安全地重命名。
  • 泛型方法能够从泛型代码中抽象出来或者嵌入泛型代码。
  • 代码帮助可以自动将合适的类型参数插入参数化的类型中。

  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 在寻找泛型引用方面已经变得聪明

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

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

图 9. 搜索窗口的过滤菜单允许您过滤泛型感知的结果

搜索窗口的过滤菜单允许您过滤泛型感知的结果

  如果您使用 Filter Incompatible 过滤结果,将删除两个不是基于 Employee 的条目。结果如图 10 所示。

图 10. Filter Incompatible 在搜索窗口过滤掉与非 Employee 相关的条目

 Filter Incompatible 在搜索窗口过滤掉与非 Employee 相关的条目

5页,页码:[1] [2] [3] [4] [5] 

上一篇:VB.Net编程实现Web Service的基础
下一篇:巧用AutoCAD阵列做法兰零件排料图
作者:Neal Ford  来源:ibm ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐