类型1 物理结构
1.Rename?
快捷键:alt+shift+r
作用:
Rename重构的功能就是重命名Java元素。虽然可以通过手动修改文件的文件名或其它Java元素的名称,但这种方式不会更新与此Java元素相关联的引用,用户必须手动查找和此Java元素相关的位置,然后进行手动修改。通过手动修改名称的方式,造成笔误的可能性会太太增加。通过Eclipse提供的Rename的功能,Eclipse会自动完成更新相关引用的操作。提示:非Java项目和Java文件等也可以通过重构菜单的Rename进行重命名。
2.Move
快捷键:alt+shift+v
作用:Move的重构和Rename的重构类似,它可以把一个Java元素从一个地方移动到另一个地方,Move的重构主要用来移动一个类到不同的包下。首先选中一个Java文件,选择Refactor菜单下的Move菜单项
3.Change Method Signature
快捷键:alt+shift+c
作用:
“Change Method Signature”重构的功能是改变方法的定义,例如改变方法的参数名称、类型和个数、返回值的类型,方法的可见性以及方法的名称等。?
4.Convert Anonymous Class to Nested?
功能:
“Convert Anonymous Class to Nested”重构的功能是把匿名类改成内部类,这样同一个类的其它部分也可以共享此类了。?例如有例程1所示的类。?例程1 KeyListenerExample.java
public class KeyListenerExample {
Display display;
Shell shell;
KeyListenerExample() {
display = new Display();
shell = new Shell(display);
shell.setSize(250, 200);
shell.setText("A KeyListener Example");
Text text = new Text(shell, SWT.BORDER);
text.setBounds(50, 50, 100, 20);
text.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
System.out.println("key Pressed -" + e.character);
}
public void keyReleased(KeyEvent e) {
System.out.println("key Released -" + e.character);
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String[] args) {
new KeyListenerExample();
}
}
在KeyListenerExample类有一个匿名类,实现了KeyListener接口,可以把这个匿名类改成内部类,首先选择匿名类,右键选择Refactor的“Convert Anonymous Class to Nested”菜单,输入内部类的名称,如图6所示。
图6 “Convert Anonymous Class to Nested”对话框
重构后的结果是Eclipse为此创建了一个内部类,名称为TestKeyListener,重构后的代码如例程2所示。?例程2 重构后的KeyListenerExample.java
public class KeyListenerExample {
private final class TestKeyListener implements KeyListener {