提取变量
编辑教程提取变量
IntelliJ IDEA "提取变量重构" 将所选表达式的结果放入一个变量中。它声明一个新的变量,并使用该表达式作为初始值设定项。原始表达式被替换为新变量(请参见下面的示例)。
在 Java 中,新变量的类型对应于由表达式返回的类型。有一个声明新变量的选项 final。
要执行这个重构,您可以使用:
就地重构。在这种情况下,你可以在编辑器中指定新的名字。 | |
---|---|
重构对话框,你可以在其中指定所有必需的信息。要使这样一个对话框可访问,您必须清除 "编辑器设置" 中的 "就地" 模式下的复选框。 |
您可以自己选择要用变量替换的表达式,也可以使用智能表达式选择。在这种情况下,IntelliJ IDEA 将帮助您选择所需的表达式。
这个重构也可用于 JavaScript 和 Sass。
Java 示例
提取变量重构前:
public void method() {
int a = 1;
...
int b = a + anotherClass.intValue();
int c = b + anotherClass.intValue();
}
提取变量重构后:
public void method() {
int a = 1;
...
int number = anotherClass.intValue();
int b = a + number;
int c = b + number;
提取变量重构前:
public void method() {
int a = anotherClass.innerClass.i;
int b = anotherClass.innerClass.j;
}
提取变量重构后:
public void method() {
AnotherClass.InnerClass aClass = anotherClass.innerClass;
int a = aClass.i;
int b = aClass.j;
}
提取变量重构前:
static void printNames(final String fullName) {
System.out.println(fullName.substring(fullName.indexOf(" ") + 1));
System.out.println(fullName.substring(0, fullName.indexOf(" ")));
}
提取变量重构后:
static void printNames(final String fullName) {
int firstNameEndIndex = fullName.indexOf(" ");
System.out.println(fullName.substring(firstNameEndIndex + 1));
System.out.println(fullName.substring(0, firstNameEndIndex));
}
就地提取变量
要使用就地重构来提取变量, 请按照下列步骤操作:
在编辑器中,选择要用变量替换的表达式。你可以自己做或使用智能表达式选择功能让 IntelliJ IDEA 帮助您。所以,请执行以下任一个操作:
突出显示表达式。然后选择主菜单或上下文菜单上的:重构|提取| 变量。
或者,按 Ctrl+Alt+V。
将光标放在表达式之前或内部。在主菜单或上下文菜单上选择:重构|提取变量。或按 Ctrl+Alt+V。
如果找到了所选表达式的多个匹配项,请选择 "仅替换此事件" 或 "替换出现的多个实例" 弹出菜单中的所有实例。要选择所需的选项,只需单击它。或者,使用向上和向下箭头键导航到感兴趣的选项,然后按 Enter 来选择它。
指定变量的名称。执行以下任一个操作:
从弹出列表中选择一个建议的名称。要做到这一点,请双击合适的名称。或者,使用向上和向下箭头键导航到感兴趣的名称,并按 Enter 以选择它。
通过键入来编辑名称。该名称显示在带有红色边框的框中,并在您输入时进行更改。完成后,按 Enter。
使用对话框提取变量
如果在编辑器设置中清除了 "启用就地重构" 复选框,则将通过 "提取变量" 对话框来执行 "提取变量"。
在编辑器中,选择要用变量替换的表达式。你可以自己做或使用智能表达式选择功能让 IntelliJ IDEA 帮助您。所以,请执行以下任一个操作:
突出显示表达式。然后在主菜单或上下文菜单上选择:重构| 提取| 变量。
或者,按 Ctrl+Alt+V。
将光标放在表达式之前或内部。在主菜单或上下文菜单上选择:重构|提取变量。或按 Ctrl+Alt+V。
在 "表达式" 弹出菜单中,选择表达式。为此,请单击所需的表达式。或者,使用向上和向下箭头键导航到感兴趣的表达式,然后按 Enter 来选择它。
该“表达式” 弹出式菜单包含适用于编辑器中当前光标位置的所有表达式。
当您浏览弹出窗口中的建议表达式时,编辑器中突出显示的代码会相应地更改。
在 "提取变量" 对话框中:
指定 "名称" 字段旁边的变量名。您可以从列表中选择一个建议的名称或在 "名称" 框中键入名称。 | |
---|---|
如果找到了选定表达式的多个匹配项,则可以选择相应的复选框来替换所有找到的匹配项。如果您只想替换当前的匹配项,请清除 "替换所有实例" 复选框。 | |
如果你想声明新的变量final,请选中 "声明最终的复选框"(该选项仅适用于 Java) | |
对于 ActionScript,您可以选择引入常量而不是变量。要做到这一点,请选中 "Make constant " 复选框。 |
请注意,IntelliJ IDEA 社区版中不支持 ActionScript。
点击“确定”。
选择支付方式:
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间