在本节中,将编辑工作台中的 Java 元素。
要在 Java 编辑器中打开文件 junit.samples.VectorTest.java,可双击“包资源管理器”视图中的该文件。
注意语法突出显示情况。以不同方式呈示的各 java 源部分的示例有:
查看“轮廓”视图。它显示 Java 文件(包括包声明、导入声明、字段、类型和方法)的轮廓。“轮廓”视图还指示
Java 元素是否是 static、abstract 和 final 等等。“轮廓”视图还显示是否从基本类覆盖方法()或者显示它何时从接口实现方法(
)。
在“轮廓”视图工具栏中切换隐藏字段、隐藏 Static 成员和隐藏非 Public 成员按钮来过滤视图显示。
在“轮廓”视图中切换排序按钮来以字母顺序对 Java 元素进行排序而不是以它们出现在 Java 文件中的次序排序。
可以通过查看整个 Java 文件来编辑源代码,或者可以将查看范围缩小为单个 Java 元素。单击工具栏中的仅显示所选元素的源代码按钮。
接着,在“轮廓”视图中,选择任一元素,并且应注意到,只有选择的元素才会显示在 Java 编辑器中。
再次按仅显示所选元素的源代码按钮以再次查看整个 Java 文件。
在“轮廓”视图中,选择不同的元素,并且应注意到它们再次显示在编辑器中的整个文件视图中。现在,“轮廓”视图选择是以 Java 编辑器左边界上的垂直标尺上的范围指示符指示的。
确认关闭了“轮廓”视图的工具栏中的“按字母顺序排序”按钮。
通过在 Java 编辑器中的 VectorTest.java 文件的末尾(但在类型的右括号之前)输入下列内容来开始添加方法:
public void testSizeIsThree() {
一旦您在编辑器区域中输入了方法名,新方法就会出现在“轮廓”视图的底部。
单击保存按钮。
编译单元是自动编译的,而错误出现在“包资源管理器”视图中、出现在“任务”视图中以及出现在垂直标尺上。在“包资源管理器”视图中,错误会被一直传播至包含错误的编译单元的项目。
通过输入下列内容完成新方法:
assertTrue(fFull.size() == 3); }
保存该文件。
注意,错误指示符将会消失。
在本节中,将使用本地历史功能部件来切换至个别 Java 元素的先前保存版本。
通过在“轮廓”视图中选择刚创建的方法并从上下文菜单中单击删除来删除该方法。
通过在 Java 编辑器中 VectorTest.java 文件的末尾输入下列内容来添加方法的新版本:
public void testSizeIsThree() { fFull.add(0, new Integer(0)); fFull.remove(new Integer(3)); assertTrue(fFull.size() == 3); }
保存该文件。
在“轮廓”视图中,选择方法 testSizeIsThree()
,并从其上下文菜单中选择从本地历史替换。
在从本地历史替换 Java 元素对话框中,“本地历史”列表将显示该元素的各种保存状态。“Java 源代码比较”窗格显示所选历史资源与现有工作台资源之间差异的详细信息。
在“本地历史”窗格中,选择您删除了的版本,然后单击“替换”按钮。
在 Java 编辑器中,方法被替换为所选历史版本。
保存该文件。
在 Java 编辑器中打开 junit.samples.VectorTest.java 文件。
通过在“轮廓”视图中选择 testSizeIsThree()
方法来转至该方法。
将下列行添加到该方法的末尾:
Vector v = new Vector(); for (int i=0; i<3; i++) v.addElement(new Object()); assert
使光标处于词语 assert
的末尾,然后按 Ctrl + 空格键以激活内容辅助。
具有建议列表的内容辅助窗口将出现。滚动该列表可以查看可用选项。
在内容辅助窗口仍然处于活动状态的情况下,在 assert
后面输入字母“t”(中间不能有空格)。这样将会缩小列表范围,只显示以“assert”开始的条目。
选择列表中的各项,并使光标悬浮其上以查看每一项的任何可用 Javadoc 帮助。
从列表中选择 assertTrue(boolean)
并按 Enter 键。
这样就会插入 assertTrue(boolean)
方法的代码。
完成该行以便使其内容如下所示:
assertTrue(v.size() == fFull.size());
保存该文件。
在 Java 编辑器中打开 junit.samples.VectorTest.java 文件。
通过输入下列内容来开始添加新方法:
public void testValues() { Integer[] expected= new Integer[3]; for
在光标处于 for
的末尾的情况下,按 Ctrl + 空格键以启用内容辅助。
选择 for — 对数组进行迭代
条目。
将在编辑器中插入模板并突出显示 i
。将自动猜测本地数组名。
按 Enter 键确认模板。
完成 for
to 循环:
public void testValues() { Integer[] expected= new Integer[3]; for (int i= 0; i < expected.length; i++) { expected[i]= i + 1; } Integer[] actual= to
在光标处于 to
末尾的情况下,按 Ctrl + 空格键以启用内容辅助。选取 toarray — 将集合转换为数组
。
将在编辑器中插入模板,并且突出显示及选择 type
。
通过输入 Integer
覆盖选择。数组构造函数的类型将同步更改。
按 Tab 键来突出显示及选择 collection
,并通过输入 fFull
来“覆盖”选择。
按 Enter 键确认模板。
添加下列代码行完成方法:
assertEquals(expected.length, actual.length); for (int i= 0; i < actual.length; i++) assertEquals(expected[i], actual[i]); }
保存该文件。
在 Java 编辑器中打开 junit.samples.VectorTest.java 文件。
通过在“轮廓”视图中选择导入声明并从上下文菜单中选择删除来删除这些声明。
从编辑器中的上下文菜单中选择组织导入。
必需的导入语句就被添加到包声明下面的代码的开头。
另外,可以从“轮廓”视图中导入声明的上下文菜单直接调用组织导入。
注意:可以在首选项中指定导入声明的次序(窗口 > 首选项 > Java > 组织导入)。
保存该文件。
在本节中,将改进 junit.framework.TestSuite 构造函数的代码。为了使代码的意图更明确,将抽取这样的代码:它将基本类中的测试实例收集到称为 collectTestMethods 的新方法中。
在 junit.framework.TestSuite.java 文件中,选择下列代码范围:
Class superClass= theClass; Vector names= new Vector(); while (Test.class.isAssignableFrom(superClass)) { Method[] methods= superClass.getDeclaredMethods(); for (int i= 0; i < methods.length; i++) { addTestMethod(methods[i], names, constructor); } superClass= superClass.getSuperclass(); }
通过使用将选择扩充为功能部件来选择代码范围:
TestSuite(Class)
。while
紧前面。从编辑器中的选择上下文菜单中,选择重构 > 抽取方法...。
在方法名字段中,输入 collectInheritedTests,然后单击下一步。
重构预览页显示将要执行的更改。
按完成以抽取方法。
通过在“轮廓”视图中选择抽取的方法来转至该方法。
在 Java 编辑器中打开 junit.samples.money.MoneyTest.java 文件。
在 MoneyTest 类声明的第一行上,选择 TestCase 超类规范并
注意:此命令也适用于方法和字段。
TestCase 超类在编辑器区域中打开,同时也显示在“轮廓”视图中。
单击 TestCase.java 编辑器选项卡以使它成为活动编辑器。确保仍选择类声明,并且:
“层次结构”视图打开,并显示 TestCase 类。
注意:还可以对“层次结构”视图中的类型和方法打开编辑器。
使用 Java 编辑器
显示和隐藏元素
显示单个元素或整个 Java 文件
对 Java 视图中的元素进行排序
使用本地历史
使用内容辅助
使用模板
管理导入语句
重构
重构并预览
使用“层次结构”视图
对 Java 元素打开类型层次结构
对当前文本选择打开类型层次结构
对选择的元素打开编辑器
Java 轮廓视图
Java 内容辅助
模板首选项
组织导入首选项
Java 编辑器首选项
抽取方法错误
类型层次结构视图