以下是自从发行版 2.1 以来对 Eclipse 发行版 3.0 的 Java 开发工具所作的更有意义或更重大的更改:
在 Java 编辑器中折叠 | Java 编辑器现在支持将代码区域进行折叠。悬浮在折叠的 Java 元素上使您可以看到隐藏的代码:
目前,可以折叠 import 语句、注释、类型和方法主体。可以在 Java > 编辑器首选项页面上的折叠选项卡上配置是否应在新的编辑器上启用折叠:
|
高级突出显示 | Java 编辑器现在可以根据源代码的语义(例如,静态字段、局部变量和静态方法调用)来突出显示源代码。当通过
Java > 编辑器 > 语法首选项选项卡来启用高级突出显示时,新的高级突出显示选项会显示在列表中。
还存在用于突出显示运算符和方括号的新选项,并且斜体是新支持的样式。 |
快速类型层次结构视图 | 在 Java 编辑器中选择类型、方法或包引用并按 Ctrl+T
以查看快速类型层次结构视图。对于方法,您可以查看提供此方法的所有子类型和超类型。
重复 CTRL+T 以在正常类型层次结构和超类型层次结构视图之间切换。 |
快速概要显示继承的成员 | 在重复键序列 Ctrl+O 之后,Java 编辑器中的快速概要(源 > 打开概要或 Ctrl+O)现在显示继承的成员:
同样适用于快速结构(Ctrl+F3)。 |
Java 编辑器中的智能插入输入方式 | Java 编辑器现有具有“智能插入”方式,可以通过编辑 > 智能插入方式(Ctrl+Shift+Insert)来切换该方式。
在“智能插入”方式下,编辑器提供特定于 Java 的额外功能,可以在 Java > 编辑器 > 输入首选项选项卡上配置这些功能。例如,在插入分号或右花括号之前,“智能分号”和“智能左花括号”选项会分别将插入标记移至行的末尾。 |
在粘贴时更新导入 | 复制或剪切 Java 代码还会捕获关于复制的代码需要哪些导入声明的信息。当粘贴代码时将自动添加需要的导入。可以使用 Java > 编辑器 > 输入 > 在粘贴时更新导入首选项设置来配置此功能。 |
改进了通过 Java 名称的光标定位 | Java 编辑器的 word-at-a-time 操作现在会考虑 Java 标识的典型“CamelCase”表示法。例如,标识“getFoo”上的下一个单词会在“get”和“Foo”之间造成额外的停止。Java 名称的光标定位行为由 Java > 编辑器 > 导航首选项页面上的选项控制。 |
新的代码格式化程序 |
Java 代码格式化程序提供了许多改进:Java > 代码样式 > 代码格式化程序首选项页面允许您从现有的概要文件中进行选择、定义您自己的概要文件并与其他用户共享概要文件。 新的格式化程序的可配置性很高,具有 140 个以上的选项,涉及从花括号定位到折行最后到 Javadoc 注释格式化的所有内容。 |
格式化多个文件 | 还对 Java 项目、源文件夹和包启用了“格式化”命令。当调用时,将根据当前配置的格式化程序设置来格式化所有包含的源文件。 |
拼写检查 | 已将拼写检查支持添加至 Java 编辑器。在 Java > 编辑器 > 拼写首选项页面上启用它并指定字典之后,拼写错误将显示在
Java 编辑器中,并且相应的快速修正变为可用的。
您可以将字典提供给内容辅助(可选)。然而,当前在 Eclipse 中未包括字典。必需的格式只是由换行符分隔的单词列表,并且“快速修正”允许您将新的单词添加至字典。添加字典将受到欢迎。 |
块注释 | 可以使用源 > 添加块注释来快速地将 Java 编辑器中的文本选择转化为块注释。相反,源 > 除去块注释命令则除去光标位置周围的块注释。 |
切换注释命令 | Java 编辑器中旧的源 > 注释和源 > 取消注释命令已被源 > 切换注释(Ctrl+/)命令替换,如果当前选择的源行都已注释,则该命令将这些源行全部取消注释,否则,则将它们全部进行注释。(您可以通过工作台 > 键首选项页面将键盘快捷键绑定至仍可用的旧命令)。 |
增量内容辅助 | 选择 Java > 编辑器 > 代码辅助首选项选项卡上的自动插入公共前缀以在 Java 编辑器中使用 shell 样式的增量补全。如果可用的补全不具有公共前缀,则会显示建议弹出窗口。 |
动态地标记文件中的出现 | 可以在 Java 编辑器中使用新的标记出现工具栏按钮(![]() 当所选元素更改时,会自动更新已标记的出现。缺省情况下,已标记的内容是粘滞的,也就是说,即使在当前插入标记位置处没有有效的 Java 元素时仍保持被突出显示。 可以使用“除去出现注释”源命令(Alt+Shift+U)来快速除去已标记的出现。 |
突出显示方法出口点 |
将光标放置在方法的返回类型上将突出显示所有方法出口点。可以通过首选项 Java > 编辑器 > 标记出现来启用对出口点的突出显示。 |
标记所抛出异常的位置 | 当选择异常时,可以通过触发操作搜索 > 异常出现以在 Java 编辑器中标记抛出异常的位置。如果出现标记是通过
Java > 编辑器 > 标记出现首选项页面打开的,则将自动标记这些位置。
|
Java 编辑器显示已覆盖的方法 | 新的“覆盖指示符”注释(请参阅工作台 > 编辑器 > 注释首选项页面)标记实现或覆盖另一方法的方法。缺省情况下,覆盖和实现图标出现在左边的垂直标尺中;单击该图标以浏览至超级方法:
|
在向上滚动的悬浮式帮助中显示的多个注释 | 当多个注释显示在文本编辑器的标尺中时,当在它们上面悬浮时,它们将并排显示。可以单独访问警告和操作(如快速修正、设置断点和添加书签等)。缺省情况下禁用此功能,但可以在
Java > 编辑器 > 悬浮式帮助首选项选项卡上启用它。
|
新的快速辅助提示 | 当“快速辅助”可用时,如果在 Java 编辑器中输入,“快速辅助”提示(绿色电灯泡)会显示在左页边空白中。使用编辑 > 快速修正(Ctrl+1)或单击电灯泡来查看建议。可以通过从
Java > 编辑器> 外观首选项选项卡中选择快速辅助电灯泡来启用此功能。
|
快速修正的链接方式 | 几个“快速修正”结果现在以链接(模板)方式出现。在调用“快速修正”之后使用
Tab 和 Shift+Tab 以在生成的返回类型、方法名称、自变量类型和自变量名称之间浏览。使用链接方式的“快速修正”的示例:
自变量猜测的示例: 异常猜测的示例: |
改进了标识猜测 | 当添加字段、变量或参数时,快速修正会尝试为新的标识猜测一个适合的名称。使用新的链接方式功能,现在将提供多个建议。
![]() |
改进了对于参数不匹配的快速修正 | 添加了对于不匹配的参数的几个新 Java 快速修正,包括用于强制类型转换、交换、添加或除去自变量或方法参数的快速修正。
|
新的快速辅助 | 新的快速辅助已添加至 Java 编辑器。尝试
![]() |
使用代码辅助创建 getter 和 setter | 除了创建覆盖方法以外,代码辅助还可以帮助创建 getter、setter、缺省构造函数和方法存根。将光标置于成员之间的类型主体中并按
Alt+/ 以获取创建方法存根的建议。 |
创建构造函数的快速方式 | 新的 Java 命令源 > 使用字段生成构造函数创建初始化所选字段的新构造函数。从额外构造函数参数中选择要初始化的字段,该参数的顺序通过对话框中的向上/向下按钮控制。
源 > 从超类添加构造函数命令现在弹出一个对话框,以便您可以选择应将哪些超类的构造函数插入当前类中。快速辅助功能部件仍可以用来插入而无需提示。 |
用于检查/显示的弹出窗口 |
求值弹出窗口现在用于所有“显示”和“检查”结果。
|
逻辑结构 |
Java 调试器现在允许以更简洁且有意义的形式来显示某些
Java 类型(包括集合和映射)。这些逻辑结构由“变量”视图中的切换按钮控制。
![]() |
系统线程过滤器 |
缺省情况下,现在已从调试视图过滤掉系统线程。该视图的下拉菜单中的显示系统线程命令打开或关闭该过滤器。 |
任何行上的单步跳入选择 |
Java 调试器的单步跳入选择命令不再限于当前执行的行。 |
类准备断点 |
可以在类准备事件上设置断点。当 Java VM 首次装入指定的类或接口时,将暂挂程序。
|
异常断点超链接 |
现在可以在控制台直接根据堆栈跟踪来创建异常断点。单击出现在堆栈跟踪开始处的异常名称下的超链接会对新创建的(或已存在的)异常断点打开属性对话框。
|
外部源中的断点 |
您现在可以将断点放置在外部源代码中(即,不在 Java 项目的构建类路径上的源代码)。无论调试器何时显示外部源代码,运行菜单上的断点创建操作会自动创建外部断点。 |
重构将更新断点和启动配置 |
现在,将会由于 Java 源代码重构(如重命名
Java 项目、源文件或类型声明)而更新断点和启动配置。
|
当热代码替换失败时的重新启动选项 |
当在不支持热代码替换的主机
Java VM 中进行更改时,除选择“继续”或“终止”以外,您现在还具有“重新启动 VM”的选项。
|
可以使缺省 VM 自变量与 JRE 相关联 |
Java > 安装的 JRE首选项页面现在允许您使一组缺省
VM 自变量与每个 JRE 相关联。无论何时使用这些自变量,都会将它们传递至 VM。
|
源和重构操作的快速菜单 |
可以通过快速菜单来访问重构和源命令。在 Java 编辑器或 Java 视图中选择要处理的元素,并按 Alt+Shift+S 以获取快速源代码菜单或按 Alt+Shift+T 以获取快速重构菜单。 |
重构将更新 Javadoc 中的引用 | 重命名、移动和更改方法特征符重构现在也会更新 Javadoc 注释中的引用。这包括 @see
和 @link 标记以及 @param 和 @throws 子句中的引用。
由于以下结果,已简化“重命名”对话框: 旧的选项更新 Javadoc 注释中的引用已合并到更新引用中。旧的选项更新一般 注释中的引用和更新字符串文字中的引用已合并为更新注释和字符串中的文本匹配。 |
使类型重构一般化 | 在 Java 编辑器中选择变量、参数、字段或方法返回类型的声明并选择重构 > 使类型一般化。
该向导显示变量的超类型层次结构。选择可用类型中的其中一种将会更新声明。 ![]() |
引入工厂重构 | 在 Java 编辑器中选择一种构造函数声明或调用,并选择重构 > 引入工厂。
将创建一个静态工厂方法,它调用现在为专用的构造函数,并且将用对新的工厂方法的调用替换对给定构造函数的所有调用。 ![]() |
引入参数重构 | 在 Java 编辑器中选择一个表达式并选择重构 > 引入参数。
|
改进了更改方法特征符重构 | 在 Java 编辑器中,选择一个方法并选择重构 > 更改方法特征符。
此外,还改进了参数表中的编辑,以便您可以使用标准导航键(Tab、Shift+Tab、向上箭头和向下箭头)。可以通过单击某个单元或按 F2 或 Enter 键来开始编辑。 |
从内部类型中抽取方法 |
对于包含在匿名、本地或非静态成员类型中的 Java 代码,“抽取方法”重构现在允许在外部类型中创建新的方法。 |
抽取方法查找重复的代码段 |
抽取方法现在查找重复的代码段并且还将它们抽取到新的方法中。例如,当从片段中抽取表达式 foo(a) + bar(b) 时: ![]() 产生的代码是: ![]() |
方法调用层次结构 | 通过在 Java 编辑器或显示方法的任何 Java 视图中选择浏览 > 打开调用层次结构(Ctrl+Alt+H),您可以打开显示方法调用层次结构的视图。
|
Javadoc 视图 | 存在一个新的 Javadoc 视图(窗口 > 显示视图 > 其它 > Java > Javadoc),它显示在
Java 编辑器或 Java 视图中选择的元素的 Javadoc。Javadoc 视图使用 SWT 浏览器窗口小部件来在支持窗口小部件的平台上显示 HTML。
|
声明视图 | 存在一个新“声明”视图(窗口 > 显示视图 > 其它 > Java > 声明),该视图显示在
Java 编辑器或 Java 视图中选择的元素的源。
|
类型过滤器 |
现在可以使用新的 Java > 类型过滤器首选项页面来过滤代码辅助和快速修正建议中显示的一组类型。与这些过滤器模式的其中一种模式匹配的类型将不显示在“打开类型”对话框中且不可用于快速修正和代码辅助建议。这些过滤器不会影响类型是否显示在“包资源管理器”和“类型层次结构”视图中。 ![]() |
改进了过滤支持 | 包含“过滤器...”条目的特定于 Java
的视图菜单现在包含最近更改的过滤器的相邻可检查条目。
|
归档以外的外部 Javadoc | 如果您已在归档中存储了 Javadoc 文档,则您不再需要将该归档解包。Javadoc
位置属性对话框现在支持归档中的文档。选择 JAR 并显示其属性页面(或以对等的方式,项目 > 属性 > Java
构建路径 > 库 > Javadoc 位置)以将文档连接至 JAR。
使用浏览 > 打开外部 Javadoc(Shift+F2)以在浏览器中打开 Javadoc。 |
搜索视图中的分组选项 | 您可以在视图菜单中将新的“搜索”视图切换至水平或垂直布局方式。现在可以按项目、包、文件或类型来将垂直方式的
Java 搜索结果进行分组。
|
Java 搜索中的匹配过滤器 | 可以过滤 Java 搜索结果。您可以过滤掉 Javadoc 注释、import 语句、读访问权和写访问权。将仅显示适用于当前搜索的过滤器。
|
搜索本地和匿名类型 | 搜索操作现在完全支持本地和匿名类型。尤其是您现在可以搜索对所选本地类型的引用。并且,搜索结果现在正确地位于本地或匿名类型中(而不是始终在最外面的封装方法内)。 |
本地类型 | 缺省情况下,现在在各种特定于 Java 的视图中将显示本地和匿名类型以及这些视图上隐藏这些类型的过滤器。
|
不推荐使用的元素 | 现在使用斜杠来呈示标记为不推荐使用的类型、字段和方法。
|
Javadoc 注释中的引用 | Java 基础结构现在包括 Javadoc 注释中的引用。您可以在多个位置查看此引用,包括搜索、组织、导入、编辑器中已链接的重命名和编辑器出现标记。
|
对话框字段中的内容辅助 | 内容辅助(Alt+/)现在也可用于各种 Java 对话框的输入字段。在字段具有焦点时查看它旁边的小电灯泡图标。
|
“类型层次结构”视图中的工作集支持 |
“类型层次结构”视图现在支持按工作集过滤。一旦在视图菜单中选择了工作集,则层次结构视图仅显示包含在给定工作集中的 Java 类型,由完成树所需要的父类型展开(使用填满白色的图像显示后者)。 ![]() |
包类型层次结构中的接口 | 在包上打开的类型层次结构(F4)现在还显示此包的接口。源文件夹、项目和 JAR 上的层次结构与此相同。
|
改进了 NLS 向导 | NLS 向导(源 > 使字符串外部化)已更新为处理已外部化的文件:
|
用户定义的库 | 您现在可以将外部 JAR 组合成一个命名的库。在 Java > 构建路径 > 用户库首选项页面上创建用户定义的库,然后将它们添加至项目的属性上的构建路径。
与类路径变量条目类似,用户库的类路径条目按名称(而不是本地文件系统的 JAR)来引用用户库。 |
Eclipse Java 编译器符合 JCK1.4a | 1.4 方式下的 Eclipse Java 编译器符合 JCK1.4a;在 1.3 方式下,它符合 JCK1.3a。 |
源文件夹的包含模式 | 现在可以使 Java 构建路径上的任何源文件夹与某些包含模式相关联,以便有选择地包括某些
Java 源文件。这是对已可用于有选择地排除某些源文件的排除模式的补充。注意,实际上可以遵循以下规则来组合这两种模式:如果您同时指定了这两种模式,则排除模式优先于包含模式。例如,{include="src/", exclude="src/sub"} 表示没有“src/sub/”子树的“src/”树。可以通过项目的构建路径属性来指定包含和排除模式。
|
查找对 Java 代码中静态成员的间接访问 | Java 编译器现在可以查找并标记对静态成员的间接访问。打开此检查的选项可以在
Java > 编译器 > 样式首选项页面上找到(缺省情况下不报告它们)。
对静态成员的间接访问是生成的类文件的兼容性问题。对于与 1.2 之前的 JDK 版本兼容的类文件,编译器将间接静态引用解析为声明类(示例中的 Y);对于与自 1.2 以后的 JDK 版本兼容的类文件,编译器将静态引用解析为接收器的类型(示例中的 X)。 |
查找意外的布尔赋值 | Java 编译器现在可以查找意外的布尔赋值。打开此检查的选项可以在
Java > 编译器 > 样式首选项页面上找到(缺省情况下不报告它们):
|
用于标记未限定的实例字段访问的 Java 编译器选项 | Java 编译器现在可以查找和标记对实例字段的非限定引用。可以从
Java > 编译器 > 样式首选项页面启用此检查(缺省情况下是关闭的)。
此选项支持这样一种编码样式,在该样式中,对实例字段的所有引用都已限定,以便使它们与对局部变量的引用明显地区分开来。 |
用于标记最终不能正常完成的块的 Java 编译器选项 | Java 编译器现在可以查找和标记最终不能正常完成的块(按 Java 语言规范中的定义)。最终不能正常完成的块可能会产生混淆,且被认为是不好的习惯。可以从
Java > 编译器 > 样式首选项页面启用此检查(缺省情况下是警告)。
|
空的控制流语句 | Java 编译器现在可以标记用作控制流语句的主体的空语句。请参阅 Java > 编译器 > 样式 > 空语句下的首选项 |
用于标记未编入文档的空块的 Java 编译器选项 | Java 编译器现在可以查找并标记未随注释一起编入文档的空块。空方法和类型主体的总数也有疑问。可以从 Java > 编译器 > 样式首选项页面启用此检查(缺省情况下是关闭的)。 |
查找隐藏另一个字段或变量的变量 | Java 编译器现在可以查找局部变量声明和隐藏另一个字段或变量的字段。打开此检查的选项可以在
Java > 编译器 > 高级首选项页面上找到(缺省情况下不报告它们)。
|
查找 Java 代码中不必要的类型检查 | Java 编译器现在可以查找并标记不必要的强制类型转换或“instanceof”操作。打开这些检查的选项可以在
Java > 编译器 > 未使用的代码首选项页面上找到(缺省情况下不报告它们)。
|
用于标记不必要的已校验的异常的 Java 编译器选项 | Java 编译器现在可以查找并标记已声明但未抛出的不必要的已校验的异常。可以从
Java > 编译器 > 未使用的代码首选项页面启用此检查(缺省情况下是关闭的)。
注意,给定的方法可以始终声明抛出比在超类(或接口)中声明的更少的已校验的异常。 |
新编译器选项的快速修正 | 新的 Java 编译器选项附带了相应的快速修正: 抛出的异常的不必要的声明: |
Javadoc 注释处理 | Eclipse Java 编译器现在可以处理 Javadoc 注释。搜索将报告文档注释中的引用,而重构则更新这些引用。可以从
Java > 编译器 > Javadoc 首选项选项卡控制此功能部件(或使用 项目 > 属性 > Java 编译器 > Javadoc
为各个项目进行设置)。
![]() |
Javadoc 注释中问题的快速修正 | 在 Javadoc 注释中启用新的问题标记之后(前一项),您可以在 Java 编辑器中使用快速修正来改正缺少的
Javadoc 标记。只需单击电灯泡或使用编辑 > 快速修正(Ctrl+1)。
|
内联 JSR 字节码 | Java 编译器现在可以通过使用 JSR 字节码指令(通常在最终的编译 try 块中使用)来有选择地避免生成类文件,而不是内联相应子例程的指令。生成的类文件稍大一些,但通常装入速度更快。此方式是 JSR 202 的预期支持。请参阅 Java > 编译器 > 一致性和类文件下的首选项。 |
运行需要特殊设置的各个 JUnit 测试 | JUnit 现在支持对各个测试进行修饰以便运行测试。这可以通过在 TestCase 类中实现公共静态
setUpTest(Test) 方法来完成,如下所示:
![]() 当即将单独地执行测试(包括重新运行失败的测试)时,将自动使用 setUpTest 方法。将运行由 setUpTest 返回的结果来代替给定的测试,普通用法是用特殊设置或破坏来回绕给定的测试。 |
改进了 JUnit 视图中的字符串比较 | 当 JUnit 测试由于字符串不是所期望的而失败时,单击工具栏中的放大镜按钮以在比较查看器中查看字符串之间的差异:
|