发行版 2.1 中的新增内容

以下是自从 2.0 以来对 Eclipse 发行版 2.1 的 Java 开发工具所作的更有意义或更重大的更改:

Java 编辑器

Java 调试器

重构

常规

JUnit 集成

Java 编辑器

Java 编辑器更容易定制

Java > 编辑器首选项页面提供了更多配置选项:

  • 在 Java 编辑器中可以通过悬浮式帮助选项卡来配置悬浮式帮助
  • 可以使用定型选项卡来控制圆括号、方括号、字符串和注释的自动关闭以便智能回绕字符串,还可以控制其它有帮助的特定于 Java 的编辑器行为
  • 可以使用注释选项卡来定制错误、警告和任务等的可视外观
粘滞的悬浮式帮助

通过按 F2 键,在可滚动且可调整大小的窗口中打开悬浮帮助。可以从此窗口中选择和复制内容。

可调整大小的悬浮式帮助窗口

明显的状态指示

现在,“缺省文本”编辑器和 Java 编辑器的右上角都显示了一个明显的标记来指示文件中包含错误或警告。

在右上角具有错误指示标记的编辑器

在文件中查找

“搜索”菜单组包含一个新命令(文件中的出现次数),可以用来搜索在声明了元素的编译单元或类文件中的类型、字段、方法和局部变量的所有出现。与其它搜索命令一致,标记在编辑器中是作为注释来生成和提供的。“搜索结果”视图中的各个条目用于读写访问的图标不同。在以下示例中,您将看到在“TestCase.java”中搜索“fName”的结果。

显示文件中一个字段的出现次数的“编辑器和搜索”视图

更多快速修正

现在已经有了用于附加 Java 问题的“快速修正”。单击 Java 编辑器的左边界中的灯泡,按 Ctrl+1 或者从菜单中选择编辑 > 快速修正来:

  • 创建缺少的构造函数
  • 除去未使用的私有方法、字段或类型
  • 修正有岐义的导入(同时建议“组织导入”)
  • 在外部类型中创建方法(对于匿名类中的方法)
  • 添加未实现的方法的存根
  • 添加 catch 子句或者 throws 声明以处理未捕获的异常
  • 除去 catch 子句以处理不再抛出的异常
  • 添加未实现的抽象方法

可以使用“快速修正”来修正的编译器检测到的其它问题包括:

  • 在静态上下文中使用的实例字段
  • 通过非静态方法访问的静态方法或字段
  • 非抽象类型的抽象方法的声明
  • 不可视的方法、字段、类型或导入
  • 未外部化的字符串

“快速修正”窗口

快速辅助

现在即使没有错误时也可以用“快速修正”操作。将插入标记定位在标识中并按 Ctrl+1(编辑 > 快速修正)以调用“快速辅助”。

  • 链接重命名对于所有标识都可用。

    链接重命名快速辅助

    链接重命名激活链接方式编辑(象在模板中一样),而更改标识将更改该名称在源文件中的所有出现。

  • 可以将 catch 子句替换为 throws 子句(在 catch 子句中可用)。
  • 可以将表达式语句指定给新的局部变量或字段(在所有表达式语句上可用)。例如,将把 vector.iterator(); 转换为
    Iterator iterator= vector.iterator();
    “快速辅助”提供了建议的变量名。
  • 可以除去 if/while/for/do 语句或块,并且将自动更正内容的缩进。
  • 可以用模板包围多行选择。
代码辅助改进
  • Java 编译器已经根据上下文中期望的类型改进了建议的相关程度。例如,对于 StringBuffer sb= new [code assist]StringBuffer 现在出现在列表的第一个。
  • 现在,Java 编辑器中的代码辅助提供了关键字的补全。
改进了“Java 大纲”视图

可以通过按“大纲”视图工具栏中的 “进入顶层类型”图标 按钮(进入顶层类型)来调整 Java 大纲以便只显示编译单元的 main 类型的成员。

“Java 大纲”视图工具栏

超级链接的 Java 代码

当悬浮在 Java 代码上时,按住 Ctrl 键并移动鼠标会将类、方法和字段标识转换为指向相应声明的可单击的链接。可通过 Java > 编辑器 > 导航选项卡来配置此选项。

Java 代码中的超级链接

滚动至下一个成员 在 Java 编辑器中使用 Ctrl+Shift+向下箭头(导航 > 转至 > 下一个成员)和 Ctrl+Shift+向上箭头(导航 > 转至 > 上一个成员)来快速地在成员方法、字段、初始化程序和类型之间导航。
进行时检测到更多错误

现在,Java 编辑器对更多错误类型(包括未捕获的异常和未使用的变量)进行注释,这需要进行详细的流分析。

显示在输入时检测到的错误的编辑器

适当大纲

在 Java 编辑器中按 Ctrl+F3(导航 > 打开结构)以在当前光标位置弹出元素的适当大纲。或者按 Ctrl+O(编辑 > 打开结构)以弹出当前源文件的适当大纲。

适当大纲

编辑器概述中的悬浮信息

现在,Java 编辑器概述标尺(在框架右边)显示关于问题注释的悬浮信息。

概述标尺悬浮式帮助

类文件编辑器

类文件编辑器已经与编译单元编辑器功能接近。现在,它支持光标行突出显示、行号、注释突出显示、概述标尺、打印页边距、语义选择扩大以及类文件的成员之间的键盘导航。

Java 调试器

“线程和监视器”视图

调试器的新的线程和监视器视图显示哪些线程保持锁定,哪些线程正在等待获得锁定。

显示死锁循环的“监视器”视图

 

实例断点和查看点 现在,可以设置特定于特定对象实例的断点和查看点。在“变量”视图中,从变量上下文菜单中选择实例断点...

“实例过滤器”对话框

改进了条件断点 传统的条件断点是通过求值为“true”的布尔表达式来触发的。现在可以声明每当表达式的值发生更改时就会触发条件断点。另外,现在,当在条件表达式中输入时代码辅助是可用的。

“断点属性”对话框

单步跳入选择

现在,Java 调试器允许您在一系列链接的或嵌套的方法调用中单步跳入单个方法。只需突出显示想要单步跳入的方法,并从 Java 编辑器上下文菜单中选择单步跳入选择

单步跳入选择

查看项 可通过在 Java 编辑器中选择表达式并使用查看操作(在上下文菜单和运行菜单中提供了该操作)来创建查看项。另外,可通过选择变量并使用查看操作来创建查看项。
单步执行过滤器 现在,单步执行过滤器更便于使用,原因是调试工具栏和菜单中已经添加了单步执行过滤器。另外,已经向调试上下文菜单中添加了一些操作以便更容易为与所选堆栈帧相关联的类型或包创建单步执行过滤器。
“变量”视图中的自动换行 现在,调试器的变量表达式视图的详细信息区域支持自动换行,此功能在视图的下拉菜单中提供。

“变量”视图下拉菜单中的自动换行操作

堆栈跟踪超级链接

现在,控制台中的 Java 堆栈跟踪出现时带有超级链接。当将鼠标放置在堆栈跟踪中的某行上时,指针会更改为一只手的形状,并且会对堆栈跟踪加下划线。按鼠标按钮将打开相关联的 Java 源文件,并且将光标定位在相应的行上。

“控制台”视图中带有超级链接的堆栈跟踪

控制台缓冲区大小 “控制台”视图只保留最近输出的 N 个字符(缺省值为 80K)。可通过调试 > 控制台首选项页面来配置控制台缓冲区大小。
过滤常量和静态变量

在“变量”视图的下拉菜单中提供了两个新操作 — 显示常量显示静态变量。这些操作切换静态最终变量和静态变量的可视性。

“变量”视图下拉菜单中的变量过滤操作

快速单步执行

已经提高了调试器的运行 > 单步跳过(F6)操作的性能。应注意按下 F6 键与快速单击单步跳过按钮之间的区别。

指示指针

当进行调试时,现在 Java 编辑器在左边界中使用箭头来指示当前正在执行的行。对于顶部的堆栈帧,此箭头是实心的,而对于不是顶部的堆栈帧,此箭头是空心的。

指示指针出现在编辑器标尺中

重构

新的重构

提供了许多新的重构操作:

  • 移动实例方法:此重构允许您将方法移至其参数或字段之一的已声明类。这将创建一个新方法,并将旧方法转换为代理(必要时为旧方法传递一个指向 this 的指针)。
  • 下推成员:此重构允许您将一组方法和字段从一个类移至它的子类。
  • 内联方法:此重构在所选择的调用位置或者是调用方法的每个位置将调用内联到特定 Java 方法中。它通过重构 > 内联菜单项以多种组合形式提供。
  • 内联常量:此重构在所选择的引用位置或者是引用字段的每个位置内联特定 Java 静态终态字段的使用。它通过重构 > 内联菜单项以多种组合形式提供。
  • 抽取常量:此重构从所选表达式创建静态终态字段并替代字段引用,(可选)并重写出现同一表达式的其它位置。
  • 将局部变量转换为字段:此重构允许您将局部变量转换为字段。如果在创建时就对变量进行了初始化,则该操作会将初始化移至新字段的声明或类的构造函数。
  • 将匿名类转换为嵌套类:如果代码中的匿名内部类太大,则此重构将帮助您把匿名内部类转换为成员类。
  • 将成员类型转换为顶层类型:此重构将为所选择的成员类型创建新的 Java 编译单元,并根据需要来更新所有引用。对于非静态成员类型,添加了一个字段以便允许访问先前的封装实例。
  • 抽取接口:此重构将使用一组方法来创建新接口,并使所选择的类实现该接口,(可选)并尽可能将对类的引用更改为新接口。
  • 尽可能使用超类型:此重构将一种类型的所有出现替换为它的超类型之一(但是,要在标识了可以执行此替换的所有位置之后才执行此替换)。
改进了的重构

已经改进了下列重构操作:

  • 更改方法特征符:此重构将替换“修改参数”重构。它允许您更改方法的可视性和返回类型,并允许您添加、除去、重命名和重新排序方法参数。
  • 拉出成员:已经通过几种方法改进了此重构
    • 可以将成员在层次结构中拉出多层
    • 可以在所选择的超类型中将方法声明为是抽象的,而无须将它们拉出
    • 可以计算为满足可视性约束而需要一起拉出的最小的一组成员
  • 抽取方法:可以对所抽取的方法的参数进行重新排序和重命名。
  • 重命名和移动重构:现在,当重命名 Java 类型或包时(或者将类型移至另一个包时),也可以在非 Java 文件中更新元素的全限定名。

新建轻量级重构用户界面

现在,激活任何 Java 重构操作都会显示一个小的启动对话框来收集执行重构所需要的信息。单击确定以立即执行重构,或者单击预览以便在决定是否继续执行操作之前查看其效果。

“新建轻量级重构”对话框

常规

更灵活的 Java 源路径和输出路径

Java 构建路径设置提供了更大的灵活性:
  • 排除过滤器允许您不编译源文件夹中的某些源文件。
  • 现在,可以嵌套源文件夹 — 对父文件夹使用排除过滤器来排除想要添加至构建路径的子文件夹。
  • 可以为每个源文件夹单独设置生成的类文件的位置。
  • 还可以将链接的文件夹用作源文件夹、类文件夹或输出文件夹。

“Java 构建路径”属性页面

特定于项目的 Java 编译器设置 除了工作区内的 Java 编译器首选项设置(Java > 编译器)之外,现在可以通过每个 Java 项目上新的 Java 编译器属性页面来为特定 Java 项目配置这些设置。

更多 Java 编译器选项

  • 通常,可以在单个构建操作中成功编译互相依赖的多个 Java 项目。为了允许循环,将需要在 Java > 编译器首选项页面上降低与循环依赖性相关联的严重性。
  • 现在,Java 编译器可以通知未使用的私有方法、字段或类型声明。此选项帮助您查找停用的代码和一些少见的错误。
  • 现在,当您似乎要为变量指定它自己的值时,Java 编译器就会为您发出警告。这帮助您捕获参数名与字段名接近的 setter 方法和构造函数声明中的少见错误。可通过 Java > 编译器 > 样式首选项页面来配置此选项。以下是一个示例:
赋值无效

改进了变量的前缀和后缀配置

除了为字段配置前缀或后缀之外,现在可以为静态字段、参数和局部变量指定前缀或后缀。每当需要计算变量名时,在代码辅助、快速修正和重构中就会使用 Java > 代码生成首选项页面上的这些设置。

命名约定首选项页面

可定制的代码生成

Java > 代码生成首选项页面允许您使用与普通模板相似的方式来定制生成的代码和注释。每当生成代码时就要使用这些代码模板。(注释将替换用于代码生成的现有“filecomment”和“typecomment”模板。)

“代码生成”首选项页面中的“代码和注释”选项卡

可配置的任务标记

Java > 任务标记首选项页面用于配置出现在 Java 注释中的任务标记的工作区范围内的表示。还可以通过每个 Java 项目上的 Java 任务标记属性页面来根据每个项目配置这些标记。

“任务标记”首选项页面

在编辑器中您将看到:

具有 TODO 任务的编辑器

对成员进行排序

现在,Java 编译单元和顶层类型的上下文菜单中有一个对成员进行排序操作,该操作根据在 Java > 外观 > 成员排序次序首选项页面中定义的类别次序来重新排列编译单元的成员。

“成员排序次序”首选项页面

“添加代理方法”对话框

现在,通过使用源 > 生成代理方法操作可以很容易生成代理方法(也就是委托给由实例变量提供的方法的方法)。此操作对于具有字段的所有类型都可用。

“添加代理方法”对话框

“包资源管理器”改进

现在,非 Java 项目出现在“包资源管理器”视图中。提供了一个过滤器来过滤掉非 Java 项目,并且现在打开/关闭交互作用与资源“导航器”视图一致。

“包资源管理器”中的非 Java 项目

库(例如,JRE 系统库)现在作为具有一个或多个 JAR 作为子代的单个节点出现。

包的分层布局和平面布局

“Java 包”视图(以及“包资源管理器”视图)上的一个选项允许您更改包的显示方式。分层以树的形式显示包,包下面具有子包;平面以平面列表的形式按标准排列来显示包,在平面列表中,所有包和子包都是兄弟包。以下是分层布局的一个示例:

“包资源管理器”中的分层布局

逻辑包

“Java 包”视图(“Java 浏览”透视图)合并项目中的各个源文件夹中具有相同名称的包。下图显示逻辑包的一个视图。

“Java 包”视图中的逻辑包

类型层次结构视图支持按定义类型分组

类型层次结构方法视图允许您按定义类型来对所选类型的方法进行排序。例如,对于 AbstractList, 可以看到它包含在 ObjectCollectionList 中定义的方法:

按类型层次结构中的定义类型对成员进行排序

用于“包资源管理器”视图和“项目”视图的更多过滤器

具有用于“包资源管理器”视图和“项目”视图的更多过滤器:

“包资源管理器”过滤器

恢复多个方法

现在,通过从上下文菜单中选择从本地历史记录中恢复可以采用一个操作来从本地历史记录中恢复多个 Java 元素。在对话框的左窗格中,选择想要恢复的元素,并对选择的每个元素从右边选择历史记录条目。

多个方法恢复

JUnit 集成

运行所有单元测试

JUnit 测试运行程序现在使您很容易在指定的 Java 项目、源文件夹或包中运行所有测试。

JUnit 启动配置

查找单元测试 新的 JUnit 操作导航 > 转至 > 引用测试将查找并导航至引用特定类型或方法的测试。

作为 JUnit 测试运行

在视图中选择 JUnit 测试方法,并选择运行 > 运行方式 > JUnit 测试。这将创建启动配置以运行所选择的测试。

Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.