提示与技巧

编辑源

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

内容辅助选择对话框

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

Javadoc 注释的内容辅助

用于变量、方法参数和字段名补全的内容辅助

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

对字段名的建议

如果将名称前缀或后缀用于字段、局部变量或方法参数,则务必在“代码生成”首选项页面(窗口 > 首选项 > Java > 代码生成 > 名称)中指定名称前缀或后缀。

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

参数提示悬浮式帮助

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

匿名类的内容辅助

这将创建匿名内部类的主体,包括需要实现的所有方法。
在插入与替换代码辅助之间进行切换 当对现有标识调用代码辅助时,代码辅助可以使用选择的补全来替换该标识,也可以只执行插入操作。在窗口 > 首选项 > Java > 编辑器 > 代码辅助中定义了缺省行为(覆盖或插入)。
可以在处于内容辅助选择对话框中时通过在选择补全时按 Ctrl 键来临时切换该行为。
创建 Getter 和 Setter 要为一个字段创建 getter 和 setter 方法,选择该字段的声明并调用源 > 生成 Getter 和 Setter

“生成 Getter 和 Setter”对话框

如果您使用名称前缀或后缀,则务必在“代码生成”首选项页面(窗口 > 首选项 > Java > 代码生成 > 名称)中指定名称前缀或后缀。
与字段一起删除 Getter 和 Setter 当删除字段时,Eclipse 可以提供删除该字段的 Getter 和 Setter 方法。如果您对字段使用名称前缀或后缀,则务必在“代码生成”首选项页面(窗口 > 首选项 > Java > 代码生成 > 名称)中指定名称前缀或后缀。
创建代理方法 要为字段创建代理方法,选择该字段的声明并调用源 > 生成代理方法。这将把所选方法添加至包含对代理方法的正向调用的类型。以下是代理方法的一个示例:
public void addModifyListener(ModifyListener listener) {
    fTextControl.addModifyListener(listener);
}
使用拖放操作来创建方法 要创建与现有方法具有相同特征符的方法,可以使用“拖放”或“复制/粘贴”操作。要执行“拖放”操作(Windows),放下的同时按住 Ctrl+Shift 以创建一个“链接”。
使用“拖放”操作来进行重构 可以通过“拖放”操作来在多个包之间移动 Java 编译单元 — 将添加所有丢失的导入并且将更新引用。
使用“拖放”操作来移动和复制 Java 代码元素 可以通过“拖放”操作来移动和复制 Java 元素(例如,方法和字段)。这不会触发重构 — 将只是复制或移动代码。
很容易将 Java 元素的代码放置在系统剪贴板中 当您选择一组方法、字段和类型并按 Ctrl + C(或者调用编辑 > 复制操作)时,就会将所选元素的源代码放置在系统剪贴板中。然后可以将这些源代码粘贴(Ctrl + V编辑 > 粘贴)在工作台中的另一个位置甚至粘贴在其它应用程序中(例如,电子邮件程序)。
使用模板来创建方法 可以定义包含方法存根的新模板(首选项 > Java > 编辑器 > 模板)。模板与内容辅助(Ctrl+空格键)建议是一起显示的。
还有一些现有模板,例如,“private_method”、“public_method”和“protected_method”等等。
使用 Tab 键来在要输入的值(返回类型、名称和自变量)之间浏览。

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

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

“创建方法”快速修正

使用“内容辅助”来覆盖方法 在类型主体中应添加方法的位置调用内容辅助(Ctrl+空格键)。内容辅助将提供可以覆盖的所有方法。将为所选方法创建方法主体。

“覆盖方法”内容辅助

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

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

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

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

局部重命名 要快速执行不需要对其它文件中的依赖性进行完全分析的重命名,使用“局部重命名”快速辅助。在“Java 编辑器”中,将光标定位在变量、方法或类型的标识中并按 Ctrl+1(编辑 > 快速修正)
编辑器就会切换到链接编辑方式(例如,模板)并在更改标识时同时更改对该变量、方法或类型的所有其它引用。

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

使用“快速修正”来处理异常 很容易处理抛出的异常。在输入时将检测到未处理的异常,并且在编辑器中使用红线来标记这些异常。
  • 单击灯泡或者按 Ctrl+1 以使用 try catch 块来包围调用。如果想要在 try 块中包含更多语句,则选择这些语句并使用源 > 用 try/catch 块包围。还可以很容易选择个别语句,其方法是使用编辑 > 扩大选择至并选择封装下一个上一个
  • 如果已使用 try 块包围调用,则“快速修正”将建议把 catch 块添加至现有块。
  • 如果不想处理异常,则让“快速修正”将新抛出的异常添加至封装方法声明

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

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

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

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

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

现在,使用 Ctrl+1(编辑 > 快速修正)并选择“将语句指定给新的局部变量”,“快速辅助”将为您猜测变量名。
Iterator iterator= vector.iterator();
包围行 要使用 if/while/for 语句或块来包围语句,选择要包围的行并按 Ctrl+1(编辑 > 快速修正)。这将列示包含变量 ${line_selection} 的所有模板。

“用模板包围”快速辅助

可以在窗口 > 首选项 > Java > 编辑器 > 模板上配置模板。编辑相应的模板或者定义您自己的模板以定制结果代码。
创建您自己的模板

可以创建您自己的模板。转至 Java > 编辑器 > 模板首选项页面并按新建按钮来创建模板。例如,在数组中要反向迭代的模板将如下所示:

for (int ${index} = ${array}.length - 1; ${index} >= 0; ${index}--){
   ${cursor}
}
代码辅助可以自动插入自变量名

可以让代码辅助在方法补全时自动插入自变量名。可以在 Java > 编辑器 > 代码辅助首选项页面上定制此行为(参见在方法补全时填充自变量名复选框)。例如,当在此处选择第二个条目时:

代码辅助窗口

代码辅助将自动插入自变量名:

代码辅助插入了自变量名

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

代码辅助还可以猜测填充的自变量名 — 根据它们已声明的类型。这可通过 Java > 编辑器 > 代码辅助首选项页面上的猜测已填充的自变量名复选框来配置。

除去包围的语句 要除去包围的语句或块,将光标定位在左括号后面并按 Ctrl+1(编辑 > 快速修正)

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

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

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

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

“智能 Javadoc”的结果

可以在窗口 > 首选项 > Java > 代码生成 > 代码和注释 > 注释中配置所添加注释的模板
Java 编辑器中的更高速度 可以通过下列操作来提高输入的速度:
  • 关闭在输入时出现的问题指示符。清除窗口 > 首选项 > Java > 编辑器 > 注释中的所有复选框。
  • 隐藏概述标尺。清除窗口 > 首选项 > Java > 编辑器 > 外观 > 显示概述标尺复选框。
  • 关闭编辑器中的大纲同步。清除窗口 > 首选项 > Java > 编辑器 > 外观 > 在光标移动时同步大纲选择复选框。
使用本地历史记录来回复到方法的先前版本 每当编辑文件时,它的先前内容就会保存在本地历史记录中。Java 工具使本地历史记录可用于 Java 元素,因此,可以使单个方法而不是整个文件回复到先前版本。

选择一个元素并使用替换为 > 本地历史记录来回复到该元素的先前版本。

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

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

选择容器并使用从本地历史记录中恢复来恢复已除去的任何成员。

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

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

代码模板首选项页面

自动添加注释...”复选框允许您决定创建新方法或类型的功能部件是自动添加注释还是只使用“添加 Javadoc 注释”来显式添加注释。
对成员进行排序 可以根据在 Java > 外观 > 成员排序次序首选项页面中定义的类别次序来对 Java 编译单元进行成员排序
您将发现该操作在源 > 对成员进行排序下面
字符串回绕

当编辑“字符串”文字时可以使它们回绕。例如,如果您具有类似如下的代码:

String message= "This is some long message.";

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

String message= "This is some" +
           " long message.";

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

搜索

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

对字段的读和写访问权

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

要搜索具有特定返回类型的方法,使用“* <return type>”,如下所示:

  1. 打开搜索对话框并单击 Java 搜索选项卡。
  2. 搜索字符串中输入“*”和返回类型(用空格隔开)。
  3. 选择区分大小写复选框。
  4. 选择方法声明,然后单击搜索

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

查找未使用的代码 Java 编译器检测不可达代码、未使用的变量、参数、导入和未使用的私有类型、方法和字段
该设置位于 Java > 编译器首选项页面上。

编译器首选项页面

当您输入时也会检测到这些设置,并且提供了快速修正来除去不需要的代码。

代码导航和读取

在 Java 编辑器中对选择打开 可以使用两种方法来从元素在 Java 编辑器中的引用打开该元素。
  • 选择代码中的引用并按 F3(导航 > 打开声明)
  • 按住 Ctrl 键并在引用上移动鼠标指针
超级链接样式导航 可以在首选项 > Java > 编辑器 > 导航中配置超级链接样式导航。
适当大纲 在 Java 编辑器中按 Ctrl+F3 以在当前光标位置弹出元素的适当大纲。或者按 Ctrl+O(导航 > 显示大纲)以弹出当前源文件的适当大纲。

适当大纲

转至下一个/上一个方法 要快速导航至下一个或上一个方法或字段,使用
Ctrl+Shift+向上箭头(导航 > 转至 > 上一个成员)或 Ctrl+Shift+向下箭头(导航 > 转至 > 下一个成员)
Java 代码中的提示 当使用“TODO”来标记 Java 源代码中的注释时,Java 编译器会自动创建相应的任务来作为提示。打开该任务就会使您导航回到代码中的“TODO”。使用 Java > 任务标记首选项页面来配置想要在任务列表中跟踪的任何其它特殊标记(例如,“FIXME”)。

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

在“打开”对话框和“转至”对话框中选择结尾变量 打开对话框和转至对话框现在都支持结束字符“<”。要查看打开类型对话框中以“Test”结尾的所有类型,输入模式“*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 视图

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

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

类型层次结构中的技巧
  • 通过对一个元素或选择的名称按 F4(导航 > 打开类型层次结构)来使类型层次结构聚焦于新类型
  • 不仅可以针对类型,也可以针对包、源文件夹、JAR 归档和 Java 项目来打开“层次结构”视图。
  • 可以将元素“拖放”到“层次结构”视图上,以让该视图聚焦于该元素上。
  • 可以从视图的工具栏菜单中更改“层次结构”视图的方向(从缺省方向“垂直”更改为“水平”)。
了解一种方法是在层次结构中何处实现的 要了解层次结构中的哪些类型覆盖了方法,使用“显示层次结构中的成员”功能部件。
  • 选择要查看的方法并按 F4(导航 > 打开类型层次结构)。这将对方法的声明类型打开类型层次结构视图。
  • 对于在“层次结构”视图中选择的方法,按“锁定视图并显示层次结构中的成员”工具栏按钮。
  • 层次结构视图现在只显示实现或定义“已锁定”方法的类型。例如,可以看到“isEmpty()”是在“List”中定义的,并且是在“ArrayList”和“Vector”而不是“AbstractList”中实现的

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

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

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

压缩包名 如果包名很长,则可以配置查看器来显示压缩名称。配置压缩模式是在首选项 > Java > 外观中完成的

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

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

压缩包名

各种形式

JUnit 在视图中选择 JUnit 测试方法,并选择运行 > 运行方式 > JUnit 测试。这将创建启动配置以运行所选择的测试。
隐藏 JUnit 视图,直到发生错误或故障为止 可以使 JUnit 视图仅在存在错误或故障时打开。这样,就可以将视图设置为快速视图,并且决不会在没有失败测试时查看它。当测试中没有问题时,在运行测试过程中您将看到图标 成功运行(小绿色方块的数目将增大,它指示进度),完成测试之后将看到图标 成功完成。但是,如果发生了错误或故障,则图标将更改为 发生了故障或错误(或者更改为 完成了测试,但是具有故障或错误,如果完成了测试的话),并且将出现 JUnit 视图。可以通过 Java > JUnit 首选项页面来配置此行为。
Java 源的结构比较 Java 源的结构比较忽略了 Java 元素(例如,方法和字段)的文本次序,并更好地显示更改、添加或除去了哪些元素。
要启动 Java 文件的结构比较,有两个选项:
  • 选择两个 Java 编译单元并从视图的上下文菜单中选择比较对象 > 互相。如果文件有区别,则会在“比较编辑器”中打开它们。顶部窗格显示不同的 Java 元素;双击其中一个元素就会在底部窗格中显示该元素的源。
  • 在涉及到文件比较的任何上下文(例如,CVS 同步)中,双击 Java 文件不仅会显示文本比较查看器中的文件的内容,还会执行结构比较并打开一个用来显示结果的新窗格。

Java 源的结构比较

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

属性文件的结构比较

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

代码生成首选项页面中的命名约定

不只是对单个文件组织导入工作 可以对一组编译单元、包、源文件夹或 Java 项目调用“组织导入”。
使用特定于项目的编译器设置 每个项目都可以决定是使用全局编译器设置还是定义特定于项目的设置。选择项目,并在项目属性中打开 Java 编译器页面(项目 > 属性 > Java 编译器)

特定于项目的 Java 编译器设置

还可以为“Java 任务”标记(“待处理”任务)配置特定于项目的设置
将特定 JRE 用于项目 在创建时,缺省情况下项目会添加在首选项 > Java > 已安装的 JRE 中选择的 JRE。要设置特定于项目的 JRE,打开该项目的“Java 构建路径”属性页面(项目 > 属性 > Java 构建路径),并打开页面,选择“JRE 系统库”并按编辑。在“编辑库”对话框中,可以选择采用缺省 JRE 或特定于项目的 JRE。

编辑 JRE 系统库

调试

在 Main 中停止

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

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

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

“断点属性”对话框

禁用断点 如果您发现您自己在同一个位置频繁地添加和除去断点,则可考虑在不需要断点时就禁用该断点(使用断点上下文菜单或断点视图中的禁用断点),然后在再次需要该断点时又启用它。

标尺上下文菜单中的“禁用断点”操作

更改变量值

当在调试器中暂挂了线程时,可以在变量视图中更改 Java 基本类型和“字符串”的值。从变量的上下文菜单中选择更改变量值

“更改变量值”对话框

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

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

返回至帧 当单步执行代码时,偶尔可能会单步跳得太远,或者单步跳过了您打算单步跳入的行。不必重新启动调试会话,您可以使用返回至帧操作来快速返回到方法的开头。选择与您想重新启动的 Java 方法相对应的堆栈帧,并从它的上下文菜单中选择返回至帧。将把当前指令指针重新设置为方法中的第一个可执行语句。注意,这也适用于非顶部堆栈帧。仅当使用 1.4 或更高版本 VM 或 J9 VM 进行调试时“返回至帧”才可用。
热代码替换 当使用 1.4 或更高版本 VM 或 J9 VM 进行调试时,调试器支持“热代码替换”。这允许您对当前正在调试的代码进行更改。注意,不能热装入某些更改,例如,新方法或已删除的方法、类变量或内部类。
单步跳入选择

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

单步跳入选择

控制
控制台
可以通过“控制台”视图工具栏中的下拉菜单来将显示在控制台中的输出锁定至特定进程。还有一个新的滚动锁定按钮,该按钮可以在追加新输出时使控制台停止自动滚动。

具有进程下拉菜单的控制台视图

创建查看项 查看项是表达式视图中的一个表达式,当您进行调试时其值会更新。可以从 Java 编辑器中通过选择表达式或变量并从它的上下文菜单或顶层运行菜单中选择查看来创建查看项。
查看点

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

“断点属性”对话框

“线程和监视器”视图

调试器的线程和监视器视图显示哪些线程具有锁,哪些线程正在等待获得锁。

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

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

如果想要使用 API 来作实验或者测试新的算法,使用 Java 代码片段编辑测试窗页面常常比创建新类更容易。代码片段编辑测试窗页面是可在没有上下文的情况下随时执行的随机代码片段的容器。要在“Java 透视图”中创建代码片段编辑测试窗页面,从工作台菜单中选择文件 > 新建 > 代码片段编辑测试窗页面,或者单击工作台工具栏上的“新建代码片段编辑测试窗页面”按钮 “新建代码片段编辑测试窗”工具栏按钮。输入任何想要执行的代码,然后选择它。可以采用三种方法来执行代码:

  • 执行所选代码,并将返回的结果放置在“表达式”视图中
  • 执行所选代码,并将“字符串”结果直接放置在代码片段编辑测试窗页面中

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

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

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

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

启动配置按最近启动的次序出现在“运行/调试”下拉菜单中。但是,可以通过使启动配置成为“首选”来强制该启动配置始终出现在下拉菜单的顶部。在调试 > 启动历史记录首选项页面中,可以按启动类型(“运行”、“调试”和“外部工具”)来建立首选项。

启动历史记录首选项页面

现在,“调试”下拉菜单将指定的配置显示为首选,其余配置仍按历史记录次序显示。

工作台工具栏上的“调试”下拉菜单

详细信息格式化程序

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

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

运行具有编译错误的代码

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

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

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

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

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

调试器中的代码辅助

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

  • 当输入断点的条件时
  • 在“变量和表达式”视图的“详细信息”窗格中
  • 当输入“详细信息格式化程序”代码片段时
  • 当在“代码片段编辑测试窗”页面中输入代码时
  • 在“显示”视图中

“显示”视图代码辅助弹出信息

命令行详细信息 通过从进程或调试目标的上下文菜单中选择属性,就可以始终看到用来以运行方式或调试方式启动程序的精确命令行,即使终止了启动也是这样。

命令行详细信息

堆栈跟踪
超级链接

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

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

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