有句英语谚语叫作"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,将可以查看被当前方法覆盖的祖先类方法。进入讨论组讨论。