提示与技巧(JDT)

编辑 重构 导航 搜索 视图 其他 调试

编辑源

内容辅助 内容辅助为您提供了输入的部分字符串的建议的补全列表。在 Java 编辑器中,按 Alt+/ 或者调用编辑 > 内容辅助

内容辅助选择对话框

Javadoc 注释中的内容辅助 在 Javadoc 注释中也提供了内容辅助。

Javadoc 注释的内容辅助

在内容辅助中消除类型 要使某些类型不出现在内容辅助中,使用在 打开“类型过滤器”首选项页 Java > 外观 > 类型过滤器首选项页上配置的类型过滤器功能。与这些过滤器模式中的一种模式匹配的类型将不出现在“打开类型”对话框中,并且不可用于内容辅助、快速修正和组织导入。这些过滤器模式不影响“包资源管理器”和“类型层次结构”视图。

类型过滤器首选项页

用于变量、方法参数和字段名补全的内容辅助 可以使用内容辅助来加快创建字段、方法参数和局部变量的速度。在将光标定位在声明的类型名后面的情况下,调用编辑 > 内容辅助或者按 Alt+/

字段名称建议

如果对字段、局部变量或方法参数使用名称前缀或后缀,则务必在 打开“代码样式”首选项页 Java > 代码样式首选项页中指定此前缀或后缀。

参数提示 当光标位于方法参数中时,可以看到参数提示的列表。在“Java 编辑器”中按 Ctrl+Shift+空格键或者调用编辑 > 参数提示

参数提示悬浮式帮助

有关匿名类的内容辅助 当创建匿名类时,内容辅助也提供了帮助。在光标定位于类实例创建的左括号后面的情况下,调用编辑 > 内容辅助或者按 Alt+/

匿名类的内容辅助

这将创建匿名内部类的主体,包括需要实现的所有方法。
在插入与替换内容辅助之间进行切换 当对现有标识调用内容辅助时,内容辅助可以使用选择的补全来替换该标识,也可以执行插入操作。缺省行为(覆盖或插入)在 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助首选项页中定义。
可以在处于内容辅助选择对话框中时通过在选择补全时按 Ctrl 键来临时切换该行为。
增量内容辅助 在缺省情况下,内容辅助现在将自动插入公共前缀,这与 Unix shell 扩展类似。要更改该行为,请取消选中 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助首选项页上的设置。
定制内容辅助 3.2 中的新增内容 重复调用内容辅助(Alt+/)将循环遍历不同的建议类别。

具有新方法模板建议的内容辅助

要配置应显示哪些类别,请使用 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助 > 高级首选项页。

您还可以为首选建议类别指定单独的快捷键。

创建 getter 和 setter 要为一个字段创建 getter 和 setter 方法,选择该字段的声明并调用源 > 生成 Getter 和 Setter

“生成 Getter 和 Setter”对话框

如果使用名称前缀或后缀,请确保在 打开“代码样式”首选项页 Java > 代码样式首选项页中指定此前缀或后缀。
使用内容辅助来创建 getter 和 setter 创建 getter 和 setter 的另一种方法是使用内容辅助。将光标置于成员之间的类型主体中并按 Alt+/ 以获取创建 getter 或 setter 方法存根的建议。
创建 setter 的内容辅助
与字段一起删除 getter 和 setter 当您从视图中删除字段时,Eclipse 可能会建议删除其 Getter 和 Setter 方法。如果对字段使用名称前缀或后缀,请确保在 打开“代码样式”首选项页 Java > 代码样式首选项页中指定此前缀或后缀。
创建代理方法 要为字段创建代理方法,请选择该字段的声明并调用源代码 > 生成代理方法。这将把所选方法添加至包含对代理方法的正向调用的类型。以下是代理方法的一个示例:
代理方法示例
创建 hashCode()equals()
3.2 中的新增内容
要创建方法 hashCode()equals(),请调用源代码 > 生成 hashCode() 和 equals()

“生成 hashCode() 和 equals()”对话框

使用模板来创建方法 通过使用 打开“编辑器模板”首选项页 Java > 编辑器 > 模板首选项页,可以定义包含方法存根的新模板。模板与内容辅助(Alt+/)建议是一起显示的。
还有一些现有模板,例如,“private_method”、“public_method”和“protected_method”等等。
使用 Tab 键来在要输入的值(返回类型、名称和参数)之间浏览。

具有新方法模板建议的内容辅助

使用“快速修正”来创建新方法 从方法调用开始,使用快速修正(Ctrl+1)来创建方法。

“创建方法”快速修正

使用“快速修正”来更改方法特征符 在调用处将参数添加至方法调用。然后使用快速修正(Ctrl+1)来添加方法声明中的必需参数。

“更改特征符”快速修正

使用“内容辅助”来创建构造函数存根 在要添加新构造函数的位置,在输入构造函数名称的第一个字母之后使用内容辅助。
借助内容辅助创建构造函数
根据参数创建新字段 您需要创建新字段来存储构造函数中传递的参数吗?对参数使用快速辅助(Ctrl+1)来创建赋值和字段声明,并允许 Eclipse 根据“代码样式”首选项建议一个名称。
“将参数指定给新字段”快速辅助
使用“内容辅助”来覆盖方法 在类型主体中应添加方法的位置调用内容辅助(Alt+/)。内容辅助将提供可以覆盖的所有 方法。将为所选方法创建方法主体。

“覆盖方法”内容辅助

使用“快速修正”来添加未实现的方法 要实现新接口,首先应将“实现”声明添加至类型。即使不保存或构建,Java 编辑器将对该类型加下划线以发出信号指示缺少了方法并且将显示“快速修正”灯泡。单击灯泡或者按 Ctrl+1(编辑 > 快速修正)以选择添加未实现的方法或者使类成为抽象的。

提出“添加未实现的方法”建议的快速修正

覆盖基类中某一方法 要创建覆盖基类中某一方法的方法:
选择应在其中添加方法的类型并调用源代码 > 覆盖/实现方法。这将打开一个对话框,该对话框允许您选择要覆盖哪些方法。

“覆盖/实现方法”对话框

根据示例代码段创建类型
3.2 中的新增内容
可以将包含 Java 类型的代码段直接粘贴到包或源代码文件夹中,以创建新的编译单元。例如,选择并复制以下源代码:
package pack;
   public class HelloWorld {
      public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
然后,在“包资源管理器”中选择源代码文件夹并使用 Ctrl+V(编辑 > 粘贴)。这将使用复制的内容自动创建一个新的包“pack”和文件“HelloWorld.java”。
在文件中重命名要快速执行不需要对其他文件中的依赖性进行完全分析的重命名,使用“在文件中重命名”快速辅助。在“Java 编辑器”中,将光标定位在变量、方法或类型的标识中并按 Ctrl+1(编辑 > 快速修正)
编辑器就会切换到链接编辑方式(例如,模板)并在更改标识时同时更改对该变量、方法或类型的所有其他引用。

使用“局部重命名”快速修正来更改多个标识

还可以直接使用快捷键 Ctrl+2 R。使用 打开键首选项页 常规 > 键首选项页来配置快捷键(在“源”类别中)。
使用“快速修正”来处理异常 很容易处理抛出的异常。在输入时将检测到未处理的异常,并且在编辑器中使用红线来标记这些异常。
  • 单击灯泡或者按 Ctrl+1 以使用 try catch 块来包围调用。如果想要在 try 块中包含更多语句,则选择这些语句并使用源代码 > 包围方式 > try/catch 块。还可以选择各个语句,方法是使用编辑 > 扩展选择至并选择封装下一个上一个
  • 如果已使用 try 块包围调用,则“快速修正”将建议把 catch 块添加至现有块。
  • 如果不想处理异常,则让“快速修正”将新抛出的异常添加至外层方法声明

“未捕获的异常”快速修正建议

在任何时候都可以将 catch 块转换为抛出的异常。对 catch 块使用 Ctrl+1(编辑 > 快速修正)。

“用抛出替换 catch 子句”快速辅助

对赋值输入更少 不是输入赋值,而是从将赋值的表达式开始。

“将语句指定给局部变量”快速辅助

现在,使用 Ctrl+1(编辑 > 快速修正)并选择“将语句指定给新的局部变量”,“快速辅助”将为您猜测变量名。
快速辅助指定
无需对强制类型转换表达式做太多工作 不要对类型强制转换花费太多时间。首先忽略它们并在完成语句之后使用快速辅助添加它们。

有关在赋值时的示例:
在赋值时添加强制类型转换
或对于方法参数:
为方法参数添加强制类型转换
或对于方法调用目标:
在方法调用目标中添加强制类型转换

进行了强制类型转换的表达式的赋值
进行“instanceof”检查之后,非常常见的情况是对表达式进行强制类型转换并将其赋给新的局部变量。对“instanceof”关键字调用快速辅助(Ctrl+1)可以减少您的输入量:
“引入新的局部变量并对类型进行强制类型转换”快速修正
更多的快速辅助
请参阅快速辅助页面以获取可用的代码变换功能的完整列表。其中包括:
  • 转换 if 语句
  • 将“switch”转换为“if-else”
  • 将“if-else”替换为条件语句
    ...等等
此处可以找到快速修正列表。
快速修正和快速辅助的快捷键
您可以使用 Ctrl+2 RCtrl+2 L 来直接调用一些常用的快速辅助功能,如在文件中重命名赋予局部变量。请查阅 打开键首选项页 常规 > 键首选项页以了解更多支持直接调用的快速修正功能。

显示了快速辅助功能快捷键的键首选项页

包围行 要使用 if / while / for 语句或块包围语句,选择要包围的行并调用源代码 > 包围方式或按 Alt+Shift+Z

“用模板包围”快速辅助

菜单中的条目派生自普通编辑器模板:所有包含变量 ${line_selection} 的模板都将出现在菜单中。

可以在 打开“编辑器模板”首选项页 Java > 编辑器 > 模板首选项页上配置模板。编辑相应的模板来定制结果代码,或者定义您自己的“包围方式”模板。
创建您自己的模板 要创建自己的模板,请转至 打开“编辑器模板”首选项页 Java > 编辑器 > 模板首选项页并按新建按钮来创建模板。例如,在数组中要反向迭代的模板将如下所示:

迭代器模板

内容辅助可以自动插入参数名 可以让内容辅助在方法补全时自动插入参数名。可以在 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助首选项页上定制此行为(请参阅在补全时填充参数名复选框)。例如,当在此处选择第二个条目时,

内容辅助窗口

内容辅助将自动插入参数名:

插入了参数名的内容辅助

然后,可以使用 Tab 键在插入的名称之间浏览。

内容辅助还可以猜测参数名 - 根据它们的声明类型。这可通过 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助首选项页上的猜测已填充的参数名复选框来进行配置。

自动插入类型参数
当使用 J2SE 5.0 中的参数化类型时,在 打开“内容辅助”首选项页 Java > 编辑器 > 内容辅助首选项页上启用补全时填充参数名非常有用。
参数化类型的内容辅助
结果:
已猜测并插入类型参数的内容辅助
除去周围的语句 要除去周围的语句或块,将光标定位在左括号或右括号处并按 Ctrl+1(编辑 > 快速修正)

“除去周围的语句”快速辅助

如何再次拼写该单词? 可以在 打开“拼写”首选项页 常规 > 编辑器 > 文本编辑器 > 拼写首选项页上启用 Java 编辑器中的拼写检查支持。拼写错误显示在 Java 编辑器中且提供了相应的“快速修正”:

拼写纠错建议的示例。

您也可以将字典提供给内容辅助。但是,当前在 Eclipse 中未包括字典。必需的格式只是由换行符分隔的单词列表,并且“快速修正”允许您将新的单词添加至字典。添加字典将受到欢迎。

结构化选择 可以使用“结构化选择”功能部件以根据语法的方式快速选择 Java 代码。
突出显示文本并按 Alt+Shift+向上箭头或从菜单栏中选择编辑 > 扩展选择至 > 外层元素 - 所选内容将扩展为包含所选内容的最小 Java 语法元素。然后可以通过再次调用该操作来进一步扩展选择。
查找匹配括号 要查找匹配的括号,选择左括号或右括号并按 Ctrl+Shift+P 或选择浏览 > 转至 > 匹配的括号。还可以在左括号前面或右括号后面进行双击 - 这将选择两个括号之间的文本。

使用“双击”来选择两个方括号之间的文本

智能 Javadoc 输入“/**”并按 Enter 键。这将自动添加包含标准 @param、@return 和 @exception 标记的 Javadoc 注释存根。

“智能 Javadoc”的结果

可以在 打开“代码模板”首选项页 Java > 代码样式 > 代码模板首选项页中配置新注释的模板。
仅显示所选元素的源 仅显示所选元素的源 仅显示所选元素的源 工具栏按钮来显示编译单元的分段视图。启用此按钮时,Java 编辑器仅显示在大纲层次结构视图中选择的元素(例如,方法)。禁用此按钮时,Java 编辑器显示整个编译单元。
使用本地历史记录来还原为方法的先前版本 每当编辑文件时,它的先前内容就会保存在本地历史记录中。Java 工具使本地历史记录可用于 Java 元素,因此,可以使单个方法而不是整个文件还原为先前版本。

选择一个元素(例如,在“大纲”视图中)并使用替换为 > 本地历史记录来还原为该元素的先前版本。

“从本地历史记录中替换”对话框

使用本地历史记录来恢复已除去的方法 每当编辑文件时,它的先前内容就会保存在本地历史记录中。Java 工具使本地历史记录可用于 Java 元素,因此,可以有选择地恢复已删除的方法。

选择一个元素(例如,在“大纲”视图中)并使用从本地历史记录中恢复来恢复任何已除去的成员。

“从本地历史记录恢复”对话框

可定制的代码生成 打开“代码模板”首选项页 Java > 代码样式 > 代码模板首选项页允许您使用与普通模板相似的方式来定制所生成的代码和注释。每当生成代码时就要使用这些代码模板。

代码模板首选项页

从 3.1 开始,可以使用特定于项目的代码模板,并且如果项目是共享的,则这些代码模板将在小组中共享。打开项目的属性以启用特定于项目的设置。
在代码中创建注释 可以使用源代码 > 生成元素注释(Alt+Shift+J)来显式地添加注释,也可以使用各种向导、重构或快速修正来自动添加注释。
可以在 打开“代码模板”首选项页 Java > 代码样式 > 代码模板首选项页上配置注释模板。
直接在向导中允许或禁止自动生成注释(例如,在“新建 Java 类型”向导中使用“生成注释”复选框),或者通过 打开“代码样式”首选项页 Java > 代码样式首选项页上的自动为新方法和新类型添加新注释复选框来允许或禁止自动生成注释。
也可以逐个项目地配置所有这些设置。打开项目的属性以启用特定于项目的设置。
对成员进行排序 可以根据在 打开“成员排序顺序”首选项页 Java > 外观 > 成员排序顺序首选项页中定义的类别顺序来对 Java 编译单元进行成员排序
您将发现该操作在源 > 对成员进行排序下面。
字符串回绕 当编辑“字符串”文字时可以使它们回绕。例如,如果您具有类似如下的代码:
String message= "This is a very long message.";

将插入标记定位在单词“very”后面并按 Enter 键。代码将自动更改为:

String message= "This is a very" + 
           " long message.";

可以在 打开输入首选项页 Java > 编辑器 > 输入首选项页中定制此行为。

智能输入和如何控制它 Java 编辑器的智能输入功能使您的日常工作更轻松。可以在 打开输入首选项页 Java > 编辑器 > 输入首选项页中配置它们。

Java 编辑器输入首选项页

启用在正确位置自动插入分号后,输入分号时,将在插入分号前自动地把光标定位到语句末尾。这样您就不必执行一些附加的光标导航操作。
您可以通过将向右退格键来撤销此自动定位。

用一次击键来修正代码缩进 一项有用的功能是源代码 > 更正缩进Ctrl+I
选择采用不正确的缩进的代码并调用该操作。

如果未选择任何内容,该操作将缩进当前行。

源和重构操作的快速菜单 可以通过快速菜单来访问重构和源代码操作。在 Java 编辑器或 Java 视图中选择要处理的元素,然后按 Alt+Shift+S 以获取快速源代码菜单、按 Alt+Shift+T 以获取快速重构菜单,以及按 Alt+Shift+Z 以获取“包围方式”菜单。

快速重构菜单

查找未使用的代码 Java 编译器检测不可达代码、未使用的变量、参数、导入和未使用的专用类型、方法和字段。此设置位于 打开“错误/警告”首选项页 Java > 编译器 > 错误/警告首选项页上(或者使用项目 > 属性 > Java 编译器 > 错误/警告来对单独的项目进行设置)。

编译器首选项页

当您输入时也会检测到这些设置,并且提供了快速修正来除去不需要的代码。
Javadoc 注释处理 Eclipse Java 编译器可以处理 Javadoc 注释。搜索将报告文档注释中的引用,而重构则更新这些引用。可以从 打开 Javadoc 问题首选项页 Java > 编译器 > Javadoc首选项页控制此功能(或者使用项目 > 属性 > Java 编译器 > Javadoc 来对单独的项目进行设置)。

Javadoc 首选项页

当打开时,将在 Java 编辑器中标记格式不正确的 Javadoc 注释,并且可以使用编辑 > 快速修正(Ctrl+1)来修正它们:

在 Javadoc 中检测到的问题

消除警告 在 J2SE 5.0 或更新版本中,可以使用 SuppressWarnings 注释来消除所有可选的编译器警告。
在此示例中,addAll() 被标记为未使用的方法。使用了快速修正(Ctrl+1)来添加 SuppressWarnings 注释,因此不会对此方法显示警告。
进行快速修正以添加 SuppressWarning 注释
“清理”向导
3.2 中的新增内容
“清理”向导可帮助您一次解决多个问题,并帮助您确定代码样式。
例如,您可以:
  • 尽可能将所有 for 循环转换为增强的 for 循环。
  • 使用 @Override 注释标记整个项目中的所有覆盖方法。
将与 Java 1.4 兼容的代码转换为 Java 5.0 代码时,该向导也非常有用。

“清理”向导的图片

选择一个项目、包或文件,然后使用源代码 > 清理...来启动此向导。

重构

重构脚本
3.2 中的新增内容
JDT 提供的大多数重构不仅能够以交互方式执行,还可以通过重构脚本执行。

使用重构 > 创建脚本...来根据重构历史记录创建重构脚本。

以后可以使用重构 > 应用脚本...在任何工作空间上应用重构脚本。

这种重构脚本可以在不同情况下使用,例如,自动修正软件层之间的 API 突破性更改或提供语义丰富的补丁。
安全 JAR 文件迁移
3.2 中的新增内容
从工作空间中导出 JAR 文件时,“JAR 导出”向导提供了一个用于将重构信息包括在 JAR 文件中的选项。

使用文件 > 导出...并选择 JAR 文件。在“JAR 导出”向导的第一页上,选择导出所选项目的重构。单击链接以选择要包括的重构。

通过使用重构 > 迁移 JAR 文件...重构,客户机可以将旧版本的 JAR 文件迁移到新版本。此重构将自动更新所有依赖于旧版本的 JAR 文件的代码,以使用新版本的 JAR 文件。

搜索

找到变量及其读/写访问权 可以通过选择标识(变量、方法或类型引用或声明)并调用搜索 > 在文件中的出现找到变量并且查看变量的读/写状态。这将标记在同一文件中对此标识的所有引用。结果还会与显示变量的读或写访问权的图标一起显示在搜索视图中。

对字段的读和写访问权

或者,使用标记出现功能来动态地突出显示出现。可以使用常规搜索功能(搜索 > 引用)在多个文件中进行搜索。

搜索具有特定返回类型的方法 要搜索具有特定返回类型的方法,请按如下所述的方法使用“* <返回类型>”:
  • 打开“搜索”对话框并单击 Java 搜索选项卡。
  • 搜索字符串中输入“*”和返回类型(用空格隔开)。
  • 选择区分大小写复选框。
  • 选择方法声明,然后单击搜索

搜索具有给定返回类型的方法

Javadoc 中的过滤器搜索匹配项 缺省情况下,Java 搜索查找 Java 代码和 Javadoc 内的引用。如果您不想看到 Javadoc 内的引用,则可以通过启用“搜索”视图的“查看”菜单中的“过滤 Javadoc”(三角形符号)来过滤掉这些匹配项。
过滤可能的搜索匹配项 当编译时问题导致搜索引擎无法完整地解析匹配项时,会出现可能的匹配项。使用搜索视图菜单中的过滤可能的匹配项(三角形符号)来过滤掉这些匹配项。
用“调用层次结构”来跟踪方法调用链 使用“调用层次结构”来遵循较长或复杂的调用链,而不会丢失原始文本:只选择一个方法并调用浏览 > 打开调用层次结构(Ctrl+Alt+H)

调用层次结构视图

代码导航和读取

在 Java 编辑器中对选择打开 可以使用两种方法来从 Java 编辑器中的引用打开元素。
  • 选择代码中的引用并按 F3(浏览 > 打开声明)
  • 按住 Ctrl 键并在引用上移动鼠标指针,然后单击超链接
超链接样式导航
可以使用 打开“文本编辑器”首选项页 常规 > 编辑器 > 文本编辑器首选项页中的支持超链接样式导航复选框来配置超链接样式导航。
当前概要 在 Java 编辑器中按 Ctrl+F3 以在当前光标位置弹出元素的当前概要。或者按 Ctrl+O(浏览 > 快速概要)以弹出当前源文件的当前概要。

当前概要

当前概要显示继承的成员 再次按 Ctrl+OCtrl+F3 以将继承的成员添加至打开的当前概要。继承的成员具有灰色标签。使用右上角的菜单过滤和排序大纲。

快速大纲视图

当前层次结构 使用快速类型层次结构查明哪些是虚拟调用的可能接收者。将光标放置在方法调用内部并按 Ctrl+T (浏览 > 快速类型层次结构)。该视图显示实现该方法的所有类型以及一个完整图标。

快速层次结构视图

Enter 键以在编辑器中打开相应的方法。再次按 Ctrl+T 以切换至超类型层次结构。

高级突出显示 Java 编辑器可以根据源代码的语义(例如,静态字段、局部变量和静态方法调用)来突出显示源代码。查看 打开“语法着色”首选项页 Java > 编辑器 > 语法着色首选项页上的各种选项。

高级突出显示的示例。

最初折叠的区域 您可以指定缺省情况下哪些区域在编辑器打开时处于折叠状态。查看 打开“折叠”首选项页 Java > 编辑器 > 折叠首选项页以定制此功能。

拆叠首选项页

标记出现 当在编辑器中工作时,打开工具栏中的标记出现“标记出现”工具栏按钮的图形)或按 Alt+Shift+O。您将看到文件中引用了变量、方法或类型的位置。
标记了“info”的出现的编辑器
选择一种返回类型会显示方法的出口点。选择一个异常来查看它是在何处抛出的。
标记了方法出口的编辑器
选择超类或接口以查看那些覆盖或实现了所选超类中的方法的方法。
打开“标记出现”页 Java > 编辑器 > 标记出现首选项页上对“标记出现”进行微调。
打开注释页 常规 > 编辑器 > 文本编辑器 > 注释首选项页上更改标记的颜色。
转至下一个/上一个方法 要快速浏览至下一个或上一个方法或字段,使用
Ctrl+Shift+向上箭头(浏览 > 转至 > 上一个成员)或 Ctrl+Shift+向下箭头(浏览 > 转至 > 下一个成员)
控制注释之间的导航 使用“下一个注释”/“上一个注释”工具栏按钮或浏览 > 下一个注释Ctrl+.)和浏览 > 上一个注释Ctrl+,)来在 Java 源文件中注释之间浏览。使用按钮下拉菜单,您可以配置要在哪些注释上停止:

下一个/上一个注释下拉菜单。

Java 代码中的提示 当使用“TODO”来标记 Java 源代码中的注释时,Java 编译器会自动创建相应的任务来作为提示。打开该任务就会使您浏览回到代码中的“TODO”。使用 打开 todo 页 Java > 编译器 > 任务标记首选项页来配置要在任务列表中跟踪的任何其他特定标记(例如,FIXME)。

编辑器和任务视图中的任务标记

“打开类型”对话框使用技巧
“打开类型”对话框(导航 > 打开类型或工具栏按钮)帮助您按类型名称来浏览类型。
  • 要快速查找类型,只需输入类型名的大写字符:IOOBE 将找到 IndexOutOfBoundsException
  • 要查看所有以给定后缀结尾的类型(例如,所有 Test),使用 *Test< 以便不查看所有在类型名中任何其他位置包含 Test 的类型。
带有大小写交错匹配的“打开类型”对话框
使悬浮式帮助保持不变 可以在可滚动窗口中通过按 F2(编辑 > 显示工具提示描述)来打开悬浮式帮助中的文本。可以从此窗口中选择和复制内容。

包含悬浮式帮助内容的窗口

Java 编辑器中的悬浮式帮助 您可以通过使用组合键(Shift、Ctrl 和 Alt)来查看 Java 编辑器中的不同悬浮式帮助。
当将鼠标移动到 Java 编辑器中的标识上时,缺省情况下会显示具有从此元素的相应源中抽取的 Javadoc 的悬浮式帮助。按住 Ctrl 键将显示源代码。

显示悬浮中的元素代码的悬浮式帮助

可以在 打开悬浮页 Java > 编辑器 > 悬浮首选项页中更改此行为并为其他组合键定义悬浮式帮助。
通用方法推断特征符
可以使用悬浮式帮助来显示通过方法的推断特征符。

显示了通用方法推断特征符的悬浮帮助

打开和配置外部 Javadoc 文档 如果想要使用 Shift+F2(浏览 > 打开外部 Javadoc)来打开类型、方法或字段的 Javadoc 文档,您首先必须指定元素父库(JAR 和类文件夹)或项目(源代码文件夹)的文档位置。
对于库,打开构建路径页(项目 > 属性 > Java 构建路径),转至,然后展开可在其中编辑“Javadoc 位置”节点的库的节点。该文档可以在文件系统的本地文件夹或归档中,它也可以存在于 Web 服务器上。

在 Java 构建路径对话框中配置 Javadoc 位置

对于源代码文件夹中的类型、方法或字段,转至(项目 > 属性 > Javadoc 位置)。

Java 视图

对包含许多项目的工作空间进行组织 使用“包资源管理器”的视图菜单中的顶级元素 > 工作集来启用一种新方式,该方式将工作集显示为顶级元素。此方式可以使您更方便地管理包含许多项目的工作空间。

“工作集”方式下的包资源管理器

从“包资源管理器”视图菜单中使用配置工作集来配置显示的工作集。此对话框允许您创建新的 Java 工作集、定义要显示的工作集以及显示顺序。也可以直接在“包资源管理器”中使用拖放和复制/粘贴操作重新安排工作集。

声明视图 “声明”视图显示(打开“Java 声明”视图 窗口 > 显示视图 > 其他... > Java > 声明)显示了 Java 编辑器或 Java 视图中所选元素的源。

“声明”视图

Javadoc 视图 有一个 Javadoc 视图(打开 Javadoc 视图 窗口 > 显示视图 > 其他... > Java > Javadoc)显示了 Java 编辑器或 Java 视图中所选元素的 Javadoc。Javadoc 视图使用 SWT 浏览器窗口小部件来在支持窗口小部件的平台上显示 HTML。

Javadoc 视图

“类型层次结构”视图和方法实现/定义 要查明层次结构中的哪些类型覆盖了方法,使用“显示层次结构中的成员”功能。
  • 选择要查看的方法并按 F4(浏览 > 打开类型层次结构)。这将对方法的声明类型打开类型层次结构视图。
  • 对于在“层次结构”视图中选择的方法,按“锁定视图并显示层次结构中的成员”工具栏按钮。
  • 层次结构视图现在只显示实现或定义“已锁定”方法的类型。例如,可以看到 isEmpty() 是在 List 中定义的,并且是在 ArrayListVector 而不是 AbstractList 中实现的。

锁定视图并显示层次结构中的成员

类型层次结构视图支持按定义类型来进行分组 类型层次结构方法视图允许您按所选类型的方法的定义类型来对这些方法进行排序。例如,对于 AbstractList,可以看到它包含在“对象”、“集合”和“列表”中定义的方法:

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

类型层次结构中的技巧
  • 通过对一个元素或选择的名称按 F4(浏览 > 打开类型层次结构)来使类型层次结构聚焦于新类型。
  • 不仅可以针对类型,也可以针对包、源代码文件夹、JAR 归档和 Java 项目来打开“层次结构”视图。
  • 可以将元素“拖放”到“层次结构”视图上,以让该视图聚焦于该元素上。
  • 可以从视图的工具栏菜单中更改“层次结构”视图的方向(从缺省方向“垂直”更改为“水平”)。
Java 源的结构比较 Java 源的结构比较忽略了 Java 元素(例如,方法和字段)的文本顺序,并更清楚地显示更改、添加或除去了哪些元素。
要启动 Java 文件的结构比较,有两个选项:
  • 选择两个 Java 编译单元并从视图的上下文菜单中选择比较对象 > 互相。如果文件有区别,则会在“比较编辑器”中打开它们。顶部窗格显示不同的 Java 元素;双击其中一个元素就会在底部窗格中显示该元素的源。
  • 在涉及到文件比较的任何上下文(例如,CVS 同步)中,双击 Java 文件不仅会显示文本比较查看器中的文件的内容,还会执行结构比较并打开一个用来显示结果的新窗格。

Java 源的结构比较

当执行结构比较时甚至可以忽略注释和格式更改:通过“比较编辑器”的工具栏按钮或者“CVS 同步”视图的下拉菜单来打开忽略空格选项。
属性文件的结构比较 Java 属性文件(扩展名:.properties)的结构比较会忽略属性的文本顺序,并显示更改、添加或除去了哪些属性。
要启动属性文件的结构比较,有两个选项:
  • 在“包资源管理器”或“导航器”中选择两个文件,并从视图的上下文菜单中选择比较对象 > 互相
  • 在涉及到文件比较的任何上下文(例如,CVS 同步)中,双击属性文件不仅会显示文本比较查看器中的文件的内容,还会执行结构比较并打开一个用来显示结果的新窗格。

属性文件的结构比较

包的分层表示和平面表示 “Java 包”(和“包资源管理器”)视图菜单上的选项允许您更改显示包的方式。包表示 > 分层以树的形式来显示包,并且子包位于包下面;包表示 > 平面将以标准排列来显示包,所有包和子包都作为同代位于平面列表中。
平面包布局 分层包布局
逻辑包 “Java 包”视图(“Java 浏览”透视图)合并项目中多个源代码文件夹中同名的包。屏幕快照显示包含逻辑包的“包”视图。

包含逻辑包的 Java 浏览透视图

压缩包名 如果包名很长,则可以配置在查看器中出现的压缩名称。压缩模式的配置是在 打开“外观”首选项页 Java > 外观首选项页上进行的。

Java 外观首选项页中的压缩模式配置

通过使用此示例,使用以下方式来呈示包:

压缩的包名

直接在包资源管理器中处理 Java 构建路径 除了使用项目 > 属性 > Java 构建路径处理 Java 构建路径以外,还可以使用包资源管理器的上下文菜单中的操作。
例如,可以将新的源代码文件夹、归档和库添加到构建路径中或者在源代码文件夹中包括和排除文件和文件夹。

构建路径上下文菜单

对 Java 问题进行分组
3.2 中的新增内容
配置“问题”视图,以便使用视图菜单中的分组依据 > Java 问题类型将 Java 问题分为一些类别。

对问题进行了分组的“问题”视图的图片

可以在 打开“构建”首选项页 Java > 编译器 > 构建首选项页上控制可配置的错误是否为致命错误。
Java 类型指示符
3.2 中的新增内容
打开“标签装饰”首选项页 常规 > 外观 > 标签装饰首选项页上启用 Java 类型指示符,以找出编译单元或类文件中的第一种类型。将对接口、注释和枚举显示修饰,而普通类型保持未装饰状态。

Java 类型指示符标签修饰符的图片

其他

特定于项目的首选项 可以逐个项目地定义所有代码样式和编译器选项。
通过对项目使用项目 > 属性来打开项目属性页,或者使用工作空间首选项中的链接(例如, 打开“代码样式”首选项页 Java > 代码样式首选项页)来打开项目属性页并启用特定于项目的设置。

带有“启用特定于项目的设置”复选框的项目属性页

特定于项目的设置存储在项目中的配置文件中(在“.settings”文件夹中)。当在小组中共享项目时,小组成员也将获得这些特定于项目的设置。
访问规则
访问规则使您能够对引用的库中的类型强制实施 API 规则。在 Java 构建路径页面(项目 > 属性 > Java 构建路径)中,编辑引用的项目、归档、类文件夹和库的“访问规则”节点。
可以将这些引用中的包或类型分类为:
  • 可访问
  • 不鼓励
  • 被禁止
根据 打开“错误/警告”首选项页 Java > 编译器 > 错误/警告首选项页上的设置,编译器将使用警告或错误来标记不鼓励和禁止的引用。

“访问规则配置”对话框

JUnit 在视图中选择 JUnit 测试方法,并从上下文菜单中选择运行 > JUnit 测试,或从主菜单中选择运行 > 运行方式 > JUnit 测试。这将创建启动配置以运行所选择的测试。
隐藏 JUnit 视图,直到发生错误或故障为止 可以将 JUnit 视图配置为仅在存在错误或故障时打开。这样,就可以将视图设置为快速视图,并且决不会在没有失败测试时查看它。当测试中没有问题时,在运行测试过程中您将看到图标 成功运行(小绿色方块的数目将增大,它指示进度),完成测试之后将看到图标 成功完成。但是,如果发生了错误或故障,则图标将更改为 发生了故障或错误(或者更改为 完成了测试,但是具有故障或错误,如果完成了测试的话),并且将出现 JUnit 视图。
对话框字段中的内容辅助 内容辅助(Alt+/)现在也可用于各种 Java 对话框的输入字段。在字段具有焦点时查看它旁边的小灯泡图标。

“新建类”对话框

智能地将插入标记定位在显示 Java 名称的对话框中
3.2 中的新增内容
用于编辑 Java 名称的文本字段支持智能地定位插入标记。使用 Ctrl+左箭头键Ctrl+右箭头键在名称中大小写交错的边界处停止。使用 Ctrl+Shift+左箭头键Ctrl+Shift+右箭头键慢慢扩大选择范围。使用 Ctrl+Delete 以删除名称的后面部分,使用 Ctrl+退格键以删除名称的前面部分。

智能地将插入标记定位在对话框中
Ctrl+右箭头键:
智能地将插入标记定位在对话框中
Ctrl+Shift+右箭头键:
智能地将插入标记定位在对话框中
编写“等于”:
智能地将插入标记定位在对话框中
Ctrl+Delete:
智能地将插入标记定位在对话框中
编写“目标”:
智能地将插入标记定位在对话框中
为字段、参数和局部变量定义前缀或后缀 可以为字段、静态字段、参数和局部变量配置前缀或后缀。每当计算变量名时,就会在内容辅助、快速修正和重构中使用 打开“代码样式”首选项页 Java > 代码样式首选项页上的这些设置。

“代码样式中的名称转换”首选项页

“组织导入”对多个文件执行操作 可以对一组编译单元、包、源代码文件夹或 Java 项目调用源 > 组织导入
格式化多个文件 选择要格式化的所有 Java 文件并选择源 > 格式化来将它们全部格式化。还可以对包、源代码文件夹或 Java 项目上执行格式化操作。
将特定 JRE 用于项目 当创建新项目时,缺省情况下添加的 JRE 是在 打开“安装的 JRE”首选项页 Java > 安装的 JRE 首选项页中选择的那个 JRE。要设置特定于项目的 JRE,打开该项目的“Java 构建路径”属性页面(项目 > 属性 > Java 构建路径),然后打开页面,选择“JRE 系统库”并按编辑。在“编辑库”对话框中, 可以选择缺省 JRE、特定于项目的 JRE 或执行环境来添加至新项目。

编辑 JRE 系统库

使用拖放 拖放方便地分别取代了编辑 > 剪切编辑 > 粘贴以及编辑 > 复制编辑 > 粘贴。拖动的同时按下 Ctrl 键以从移动切换为复制。

要点:

  • 如果通过“拖放”操作在多个包之间移动 Java 编译单元,则此行为将类似于重构移动 - 将添加所有丢失的导入并且将更新引用。
  • 如果拖放源元素(如类型或方法),则此操作将仅复制或移动相应的源代码 - 将不会更新引用
传播建议不要使用标记 可以使用 打开“错误/警告”首选项页 Java > 编译器 > 错误/警告首选项页上的选项将 Java 编译器配置成对建议不要使用的内容进行诊断。

编译器首选项页

使用此配置,结果为:

I.java

X.java

Y.java

如果您无法修正对建议不要使用的构造的使用,我们建议您将外层方法、字段或类型标记为建议不要使用使用。这样,您就确认您已覆盖建议不要使用的构造,并将建议不要使用标志传播至更多的从属项。

X.java

Y.java

从不正常的不一致性中恢复 在极少数的功能失常的情况下,JDT 可能表现某些不一致性,例如:
  • Java 搜索打开类型中缺少结果
  • 包资源管理器中存在无效项

要再次使 JDT 一致,需要完全按照以下顺序执行下列操作:
  1. 使用导航器关闭项目菜单操作关闭所有项目
  2. 退出 Eclipse 并重新启动它
  3. 使用导航器打开项目菜单操作打开所有项目
  4. 以手工方式触发整个工作空间的清洁构建(项目 > 清洁...

调试

从上下文菜单启动

可以从上下文菜单中运行和调试 Java 应用程序。可以通过从视图或编辑器中的上下文菜单中选择运行方式(或者调试方式 > Java 应用程序来启动源文件、包、方法和类型等等。或者,可以使用 Java 应用程序启动快捷键绑定(Alt+Shift+D 和 Alt+Shift+J)。顶级运行方式(或调试方式)操作对于当前选择或活动编辑器来说也是敏感的。

具有启动选项的上下文菜单

调试器中的求值

可以从调试器中的许多位置获得片段求值。从编辑器或“变量”视图的上下文菜单中选择显示检查将把结果显示在弹出窗口中,其结果可以发送至“显示”视图“表达式”视图

弹出窗口中的检查结果

非调试透视图中的视图管理

“调试”视图基于视图选择自动管理与调试相关的视图(例如,对于 Java 堆栈帧显示 Java 视图,而对于 C 堆栈帧则显示 C 视图)。缺省情况下,此自动视图管理仅发生在“调试”透视图中,但您可以通过从“调试”视图工具栏下拉菜单中获得的视图管理首选项页对其他透视图启用此管理。

环境变量

可以通过环境选项卡来指定用于启动 Java 应用程序的环境。

启动配置对话框中的环境选项卡

字符串替换

Java 应用程序启动配置的许多参数都支持变量。大部分支持变量的字段在它们旁边都有变量... 按钮,如程序和 VM 参数字段。主类型字段也支持变量;${java_type_name} 变量允许您创建将运行所选类型的配置。

“启动配置”对话框中的“参数”选项卡

逻辑结构

“变量”视图工具栏上的逻辑结构开关提供公共类型的备用结构。JDT 为映射、集合和 SWT 组合体提供逻辑视图。可以从逻辑结构首选项页中为其他类型定义逻辑结构。

在“变量”视图中显示为逻辑结构的向量

缺省 VM 参数

如果您经常对某个 VM 指定相同的参数,则您可以在已安装的 JRE首选项页中配置缺省 VM 参数。这比为每个启动配置指定它们更方便。

指定了缺省参数的 JRE 首选项页

在 Main 中停止

可以使用“Java 应用程序”启动配置中的在 main 中停止来使程序在以调试方式运行时使该程序在 main 方法的第一个可执行行上停止。

选择了“在 main 中停止”选项的 main 选项卡

条件断点 可以在断点属性... 中使用条件断点来控制断点何时真正停止执行。可以指定您是想要断点仅在条件为 true 时才暂挂执行还是想要断点在条件值发生更改时就暂挂执行。

“断点属性”对话框中的断点条件编辑器

禁用断点

如果您发现自己经常在同一位置添加和除去某个断点,则可以考虑在不需要该断点时禁用它,并且在再次需要该断点时又重新启用它。可以使用断点上下文菜单中的禁用断点或通过在“断点”视图中取消选择该断点来执行此操作。

您还可以通过使用“断点”视图工具栏中的跳过所有断点操作来临时禁用所有断点。这将告诉调试器跳过所有断点,而仍保持其当前启用状态。

在标尺上下文菜单中禁用断点操作

更改变量值

当在调试器中暂挂了线程时,可以在变量视图中更改 Java 基本类型和“字符串”的值。从变量的上下文菜单中选择更改变量值。您还可以通过将新值输入到“详细信息”窗格中并使用上下文菜单中的指定值操作(CTRL+S 键绑定)来更改值。

在“详细信息”窗格中更改变量值

悬浮式帮助中的变量值 暂挂线程并且将光标放置在 Java 编辑器中的某个变量上时,该变量的值会作为悬浮式帮助来显示。

编辑器中的变量值悬浮式帮助

返回至帧

当单步执行代码时,偶尔可能会单步跳得太远,或者单步跳过了您打算单步跳入的行。不必重新启动调试会话,您可以使用返回至帧操作来快速返回到方法的开头。选择与您想重新启动的 Java 方法相对应的堆栈帧,并从“调试”视图工具栏或该堆栈帧的上下文菜单中选择返回至帧。将把当前指令指针重新设置为方法中的第一个可执行语句。这也适用于非顶部堆栈帧。

注意,仅当使用 1.4 或更高版本 VM 或 J9 VM 进行调试时“返回至帧”才可用。存在一些 JVM 可能无法从堆栈弹出期望的帧的情况。例如,通常不可能返回至堆栈的底部帧或本机方法以下的任何帧。

热代码替换 当使用 1.4 或更高版本 VM 或 J9 VM 进行调试时,调试器支持“热代码替换”。这允许您对当前正在调试的代码进行更改。注意,不能热交换某些更改,例如,新方法或已删除的方法、类变量或内部类,这取决于特定 VM 提供的支持。
单步跳入选择

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

此功能在除当前执行的行以外的位置起作用。尝试调试到断点并单步跳入方法中在当前指令指针之下的一些行。

单步跳入选择的内容

控制台锁定 可以通过“控制台”视图工具栏中的 锁定控制台操作来将显示在控制台中的输出锁定至特定进程。还有一个滚动锁定操作,该操作可以在追加新输出时使控制台停止滚动。
创建察看项 察看项是表达式视图中的一个表达式,当您进行调试时其值会更新。可以从 Java 编辑器中通过选择表达式或变量并从它的上下文菜单或顶级运行菜单中选择察看来创建察看项。
观察点

观察点是每当访问或修改指定的字段时就会暂挂执行的断点。要设置观察点,在“大纲”视图中选择一个变量,并从它的上下文菜单中选择切换观察点。要配置观察点,在断点视图中选择观察点,并从它的上下文菜单中选择属性...。此类型的断点最重要的属性是访问修改复选框,它们控制断点何时可以暂挂执行。

断点属性对话框

线程和监视器

(可选)Java 调试器在调试视图中显示监视器信息。使用“调试”视图下拉菜单中的显示监视器操作来显示哪些线程占用了锁以及哪些线程正在等待获取锁。死锁所涉及的线程显示为红色。

显示了死锁循环的“调试”视图

单步执行过滤器 单步执行过滤器防止调试器在单步跳入代码时在指定的类和包中暂挂。单步执行过滤器是使用 打开“单步执行过滤”首选项页 Java > 调试 > 单步执行过滤首选项页建立的。当使用单步执行过滤器开关(在调试工具栏和菜单上)打开时,单步执行过滤器适用于所有单步执行操作。在“调试”视图中,通过从堆栈帧的上下文菜单中选择过滤器类型过滤器包可快速地将所选堆栈帧的包或声明类型添加到过滤器列表中。
使用代码片段编辑测试窗

如果想要使用 API 来作实验或者测试新的算法,使用 Java 代码片段编辑测试窗页面常常比创建新类更容易。代码片段编辑测试窗页面是可在没有上下文的情况下随时执行的随机代码段的容器。要创建代码片断编辑测试窗页,请创建扩展名为 .jpage 的新文件(或者使用 打开“新建代码片断编辑测试窗”向导 新建代码片断编辑测试窗页向导)。输入任何想要执行的代码,然后选择它。可以采用三种方法来执行代码:

  • 执行所选代码,并将返回的结果放置在检查弹出框中
  • 执行所选代码,并将“字符串”结果直接放置在代码片段编辑测试窗页面中

    显示结果的代码片段编辑测试窗页面

  • 执行所选代码(并忽略任何返回的结果)

这些操作都存在于工作台工具栏中,也存在于代码片段编辑测试窗页面的上下文菜单中。

编辑
启动
配置
按住 Ctrl 键并从运行调试下拉菜单中进行选择将打开相关联的启动配置以进行编辑。还可以从与“调试”视图中的任何项相关联的上下文菜单中打开启动配置。
首选的启动配置

启动配置按最近启动的顺序出现在“运行/调试”下拉菜单中。但是,可以通过使启动配置成为“首选”来强制该启动配置始终出现在下拉菜单的顶部。从适当的下拉菜单中使用组织收藏夹...操作来配置您的首选启动配置。

详细信息格式化程序

变量视图和表达式视图中,详细信息窗格显示当前选择的变量的扩展表示法。缺省情况下,此扩展表示法是对所选对象调用 toString() 的结果,但是可以通过从变量的上下文菜单中选择新建详细信息格式化程序来创建将使用的定制详细信息格式化程序。此详细信息格式化程序将用于具有相同类型的所有对象。可以在 打开“详细信息格式化程序”首选项页 Java > 调试 > 详细信息格式首选项页中查看和编辑所有详细信息格式化程序。

详细信息格式化程序对话框

运行具有编译错误的代码

可以运行和调试未干净编译的代码。运行具有编译错误和没有编译错误的代码之间的唯一区别是:如果执行了具有编译错误的一行代码,则将发生以下两种情况的其中一种:

  • 如果在 打开“调试”首选项页 Java > 调试调试首选项页上设置了“编译错误时暂挂执行”首选项,并且您正在进行调试,则会像命中了断点一样暂挂调试会话。注意,如果 VM 支持“热代码替换”,则可以修正编译错误然后继续进行调试
  • 否则,执行会因“不可解决的编译”错误而终止

要强调这一点:只要执行路径避免带有编译错误的代码行,您就可以正常地运行和调试。

“变量”视图中的自动换行 调试器的变量表达式视图的详细信息区域支持自动换行,此功能在视图的下拉菜单中提供。

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

调试器中的代码辅助

在 Java 编辑器中,除了编写代码之外,在许多上下文中都提供了代码辅助:

  • 输入断点条件
  • 变量表达式视图的详细信息窗格中
  • 输入详细信息格式化程序代码段时
  • 输入逻辑结构代码段时
  • 代码片断编辑测试窗页面中输入代码时
  • 显示视图中
命令行详细信息 通过从进程或调试目标的上下文菜单中选择属性,就可以始终看到用来以运行方式或调试方式启动程序的精确命令行,即使终止了启动也是这样。

命令行详细信息

堆栈跟踪
超链接

控制台中的 Java 堆栈跟踪出现时带有超链接。当将鼠标放置在堆栈跟踪中的某行上时,指针会更改为一只手的形状。按鼠标按键将打开相关联的 Java 源文件,并且将光标定位在相应的行上。在堆栈跟踪顶部处的异常名称上按鼠标按键将创建异常断点。

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