有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意。
1、查看定义
程序类之间是相互调用的,JBuilder可以方便你查看类、方法、值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处。
2、查看引用
类、方法、值域被定义后,其引用星洒在程序的不同地方,查看定义就象"游子寻根",而查看引用刚好相反,即从元素定义处查找所有的引用该元素的地方。将光标置于元素定义处,按Ctrl+Shift+Enter或都通过右键弹出的菜单,选择Find References,JBuilder将工程中所有的引用列在信息窗格中,如下图所示:

图 3 引用查找结果
引用以树形方式组织,这些引用以类为分组节点,其下是具体的引用之处。下表列出了树中涉及到图标的说明:
表 2 查询引用结构图标说明
查询何种语义的引用
图标说明
类、内部类、接口
1)

2)

3)

4)

5)

方法、构造函数
1)

2)

3)

值域、局部变量
1)

2)

除可以在工程范围内查看引用外,也可以在当前的类范围内查看引用关系:在元素定义处右键单击,在弹出的菜单中选择Find Local References菜单项。
3、查看覆盖方法
在子类或接口的实现类中,将光标定位于覆盖方法处,右键单击,在弹出的菜单中选择Find Overridden Method,将可以查看被当前方法覆盖的祖先类方法。进入讨论组讨论。