IntelliJ IDEA提取字段
IntelliJ IDEA 提取字段重构声明一个新的字段并用选定的表达式初始化它。原始表达式被替换为字段的用法。
提取字段重构示例
示例-1
提取字段重构前:
public class Class {
AnotherClass anotherClass;
public void method() {
int a = 1;
...
int b = a + anotherClass.intValue();
int c = b + anotherClass.intValue();
}
}
提取字段重构后:
public class Class {
public AnotherClass anotherClass;
private int number;
public Class() {
number = anotherClass.intValue();
}
public void method() {
int a = 1;
...
int b = a + number;
int c = b + number;
}
}
示例-2
提取字段重构前:
public class Class {
AnotherClass anotherClass;
public void method() {
int a = anotherClass.innerClass.i;
int b = anotherClass.innerClass.j;
}
}
提取重构字段后:
public class Class {
public AnotherClass anotherClass;
private AnotherClass.InnerClass aClass = anotherClass.innerClass;
public void method() {
int a = aClass.i;
int b = aClass.j;
}
}
在原地提取字段
默认情况下,在 IntelliJ IDEA 中启用了就地重构。所以,如果你没有改变这个设置,那么将在编辑器中对引入的字段重构进行就地重构:
- 将光标置于变量的表达式或声明中,并用字段替换。
- 执行以下任一操作:
- 如果检测到当前光标位置有多个表达式,表达式列表就会出现。如果是这种情况,请选择所需的表达式。为此,请单击表达式。或者,使用向上和向下箭头键导航到感兴趣的表达式,然后按 Enter 来选择它。
- 如果在类中发现了多个表达式,请指定您是否希望只替换所选的事件,或者将所有发现的事件替换为新的常量:
- 如有必要,请更改新字段的类型。
要移至该类型,请按 Shift+Tab。然后,从列表中选择所需的类型,或者在带有读取边框的框中编辑类型。
现在,要移回字段名称,请按 Tab。
- 如果相关,则指定新字段将在何处初始化 - 在当前方法中还是在类构造器中。
- 指定字段的名称。从列表中选择名称,或者在带有红色边框的框中键入名称。
- 要完成重构,请按 Tab 或 Enter。
如果您还没有完成重构并想要取消所做的更改,请按 Escape。
请注意,有时您可能需要多次按下相应的按键。
使用对话框提取字段
如果在编辑器设置中清除了 "启用就地重构" 复选框,则将通过 "引入" 字段来执行 "提取字段"。
- 在编辑器中,选择要用字段替换的表达式或变量,或者将光标放在这样的表达式或变量声明中。
- 在主菜单或选择的上下文菜单中,选择:重构| 提取| 字段(Refactor | Extract | Field),或按 Ctrl+Alt+F。
- 在表达式弹出菜单中,选择要替换的表达式。请注意,IntelliJ IDEA 在编辑器中突出显示所选表达式。
- 在打开的提取字段对话框中: