Eclipse 3.1 和 J2SE 5.0 入门

Eclipse 3.1 提供了对 J2SE 5.0(代号为“Tiger”)的新功能的全面支持。此支持中有一个最重要的成果,您可能根本没有注意到它,即,您在 J2SE 1.4 中期望使用的所有功能(包括编辑、编译、调试、快速修正、重构、源代码操作以及搜索等等)都可以无缝地应用于 J2SE 5.0 的新类型和语法。在本文档中,我们将介绍 Eclipse 用户在使用 J2SE 5.0 时将会发现的一些更有吸引的功能。

先决条件

为了开发与 J2SE 5.0 一致的代码,您需要 J2SE 5.0 Java 运行时环境(JRE)。如果您是第一次在使用 J2SE 5.0 JRE 的情况下启动 Eclipse,则 Eclipse 在缺省情况下将使用该 JRE。否则,您将需要使用已安装的 JRE 对话框(窗口 > 首选项 > Java > 已安装的 JRE)来向 Eclipse 注册它。

本文档简明扼要地介绍了 J2SE 5.0 中的一些新语言功能,但本文档并不适于作为这些语言功能的教程。

编译器一致性级别

要使用新的 J2SE 5.0 功能,必须使用启用了 5.0 一致性级别的项目。可以在新建 > 项目向导的第一页上方便地将新项目标记为与 5.0 一致:

新建项目向导

要将现有的 J2SE 1.4 项目转换为 J2SE 5.0,您只需:
  1. 确保已安装 J2SE 5.0 JRE。
  2. 在代码中开始使用 5.0 功能。
  3. 当标记了编译器错误时,使用快速修正功能来更新项目的一致性级别:

    进行快速修正以启用 J2SE 5.0

为了更精确地进行控制,可以以全局方式为工作空间设置编译器一致性级别(窗口 > 首选项 > Java > 编译器),也可以单独地为每个项目进行设置(从项目的上下文菜单中,选择属性 > Java 编译器)。具有不同一致性级别的项目可以在工作空间中共存并相互依赖。您还可以使用属性 > Java 编译器 > 错误/警告 > J2SE 5.0 选项来对每个项目生成的编译器警告和错误的种类进行调整。

通用类型

通用类型使同一个类的对象能够安全地对不同类型的对象执行操作。例如,它们可以提供编译时保证,即 List<String> 始终包含 String,而 List<Integer> 始终包含 Integer

在 Eclipse 处理非通用类型的任何位置,它都可以处理通用类型:

另外,已添加了新的重构:推断通用类型自变量可以推断类、包或整个项目中每个类型引用的类型参数:

调用“推断通用类型自变量”

调用重构将生成:

已调用的“推断通用类型自变量”

在搜索对通用类型的引用时,Eclipse 3.1 提供了新选项。请参照以下示例:

包含 List 的四种不同参数化实例的示例

选择对 List<Integer> 的引用,然后使用搜索 > 引用 > 项目,将突出显示全部四行中的 List 类型:

不使用过滤器进行搜索

通过使用“搜索视图”菜单,可以对结果进行过滤:

过滤不兼容项将仅保留对那些赋值与所选类型兼容的类型的引用:

过滤不兼容项

过滤不精确项将仅保留特征符完全相同的类型引用:

过滤不精确项

注释

注释附加关于 Java 类型和方法如何被使用并记录到 Java 源代码的元数据,注释会对编译产生影响,您在运行时也可以查询注释。例如,如果所注释的方法未覆盖超类中的方法,则 @Override 将触发编译器警告:

覆盖注释

您对 Java 类型可以执行的任何操作都适用于注释:

一个在 Eclipse 中全面支持的非常有用的注释是 @SuppressWarnings。例如,假定有一个当前未被使用的私有方法,但您不想删除它:

警告:未使用的私有方法

对警告调用快速修正功能将会建议添加 @SuppressWarnings 注释:

建议的 SuppressWarning

如果您选择快速修正,就会添加注释。Eclipse 编译器通过除去对 foo 的警告来采用该注释:

已插入 SuppressWarning

枚举

枚举是在运行时被已知的有限对象集合实例化的类型:

枚举类型

同样,您对 Java 类可以执行的任何操作也都适用于枚举:

自动装箱

自动装箱和自动拆箱使得在对对象引用指定基本类型或者从对象引用检索基本类型时,能够使用更好的语法:

突出显示的自动装箱

Eclipse 的源代码处理功能以无缝方式处理自动装箱,因此能够对新的局部变量指定正确的类型并确保代码辅助功能正确。为了便于理解代码,可以将自动装箱或自动拆箱的实例标记为编译警告(窗口 > 首选项 > Java > 编译器 > 错误/警告 > J2SE 5.0 选项 > 装箱和拆箱转换),也可以使用语法着色功能突出显示它们(窗口 > 首选项 > Java > 编辑器 > 语法着色 > Java > 自动装箱(拆箱)的表达式):

启用自动装箱突出显示

增强的 for 循环

对于按顺序对每个数组或集合元素执行操作这种常见情况,J2SE 5.0 允许使用更简练的新语法。Eclipse 3.1 提供了“foreach”代码模板,该代码模板能够自动猜测要迭代的集合:

建议的 foreach 模板

选择该模板将生成:

已插入 foreach 模板

Eclipse 3.1 还提供了“转换为增强的 for 循环”快速辅助功能以便尽可能地升级 1.4 样式的 for 循环。

其它

Eclipse 的编辑、搜索和代码处理工具能够灵活地处理 J2SE 5.0 的所有其它功能:

祝您编码愉快!