IntelliJ IDEA提取變量

2018-11-07 11:46 更新

IntelliJ IDEA "提取變量重構(gòu)" 將所選表達(dá)式的結(jié)果放入一個(gè)變量中。它聲明一個(gè)新的變量,并使用該表達(dá)式作為初始值設(shè)定項(xiàng)。原始表達(dá)式被替換為新變量(請參見下面的示例)。

在 Java 中,新變量的類型對應(yīng)于由表達(dá)式返回的類型。有一個(gè)聲明新變量的選項(xiàng) final。 

要執(zhí)行這個(gè)重構(gòu),您可以使用:

  • 就地重構(gòu)。在這種情況下,你可以在編輯器中指定新的名字。
  • 重構(gòu)對話框,你可以在其中指定所有必需的信息。要使這樣一個(gè)對話框可訪問,您必須清除 "編輯器設(shè)置" 中的 "就地" 模式下的復(fù)選框。

您可以自己選擇要用變量替換的表達(dá)式,也可以使用智能表達(dá)式選擇。在這種情況下,IntelliJ IDEA 將幫助您選擇所需的表達(dá)式。

這個(gè)重構(gòu)也可用于 JavaScript 和 Sass。

Java 示例

示例-1

提取變量重構(gòu)前:

public void method() {
    int a = 1;
    ...
    int b = a + anotherClass.intValue();
    int c = b + anotherClass.intValue();
}

提取變量重構(gòu)后:

public void method() {
  int a = 1;
  ...
  int number = anotherClass.intValue();
  int b = a + number;
  int c = b + number;

示例-2

提取變量重構(gòu)前:

public void method() {
    int a = anotherClass.innerClass.i;
    int b = anotherClass.innerClass.j;
}

提取變量重構(gòu)后:

public void method() {
    AnotherClass.InnerClass aClass = anotherClass.innerClass;
    int a = aClass.i;
    int b = aClass.j;
}

示例-3

提取變量重構(gòu)前:

static void printNames(final String fullName) {
    System.out.println(fullName.substring(fullName.indexOf(" ") + 1));
    System.out.println(fullName.substring(0, fullName.indexOf(" ")));
}

提取變量重構(gòu)后:

static void printNames(final String fullName) {
    int firstNameEndIndex = fullName.indexOf(" ");
    System.out.println(fullName.substring(firstNameEndIndex + 1));
    System.out.println(fullName.substring(0, firstNameEndIndex));
}

就地提取變量

要使用就地重構(gòu)來提取變量, 請按照下列步驟操作:

  1. 在編輯器中,選擇要用變量替換的表達(dá)式。你可以自己做或使用智能表達(dá)式選擇功能讓 IntelliJ IDEA 幫助您。所以,請執(zhí)行以下任一個(gè)操作:
    • 突出顯示表達(dá)式。然后選擇主菜單或上下文菜單上的:重構(gòu)|提取| 變量。

      或者,按 Ctrl+Alt+V。


      IntelliJ IDEA提取變量
    • 將光標(biāo)放在表達(dá)式之前或內(nèi)部。在主菜單或上下文菜單上選擇:重構(gòu)|提取變量?;虬?Ctrl+Alt+V。
      IntelliJ IDEA提取變量
      IntelliJ IDEA提取變量
  2. 如果找到了所選表達(dá)式的多個(gè)匹配項(xiàng),請選擇 "僅替換此事件" 或 "替換出現(xiàn)的多個(gè)實(shí)例" 彈出菜單中的所有實(shí)例。要選擇所需的選項(xiàng),只需單擊它。或者,使用向上和向下箭頭鍵導(dǎo)航到感興趣的選項(xiàng),然后按 Enter 來選擇它。
    IntelliJ IDEA提取變量
  3. 指定變量的名稱。執(zhí)行以下任一個(gè)操作:
    • 從彈出列表中選擇一個(gè)建議的名稱。要做到這一點(diǎn),請雙擊合適的名稱?;蛘?,使用向上和向下箭頭鍵導(dǎo)航到感興趣的名稱,并按 Enter 以選擇它。
      IntelliJ IDEA提取變量
    • 通過鍵入來編輯名稱。該名稱顯示在帶有紅色邊框的框中,并在您輸入時(shí)進(jìn)行更改。完成后,按 Enter。
      IntelliJ IDEA提取變量

使用對話框提取變量

如果在編輯器設(shè)置中清除了 "啟用就地重構(gòu)" 復(fù)選框,則將通過 "提取變量" 對話框來執(zhí)行 "提取變量"。

IntelliJ IDEA提取變量

  1. 在編輯器中,選擇要用變量替換的表達(dá)式。你可以自己做或使用智能表達(dá)式選擇功能讓 IntelliJ IDEA 幫助您。所以,請執(zhí)行以下任一個(gè)操作:
    • 突出顯示表達(dá)式。然后在主菜單或上下文菜單上選擇:重構(gòu)| 提取| 變量。

      或者,按 Ctrl+Alt+V。

    • 將光標(biāo)放在表達(dá)式之前或內(nèi)部。在主菜單或上下文菜單上選擇:重構(gòu)|提取變量?;虬?Ctrl+Alt+V。

      在 "表達(dá)式" 彈出菜單中,選擇表達(dá)式。為此,請單擊所需的表達(dá)式?;蛘?,使用向上和向下箭頭鍵導(dǎo)航到感興趣的表達(dá)式,然后按 Enter 來選擇它。

      該“表達(dá)式” 彈出式菜單包含適用于編輯器中當(dāng)前光標(biāo)位置的所有表達(dá)式。

      當(dāng)您瀏覽彈出窗口中的建議表達(dá)式時(shí),編輯器中突出顯示的代碼會相應(yīng)地更改。

  2. 在 "提取變量" 對話框中:
    1. 指定 "名稱" 字段旁邊的變量名。您可以從列表中選擇一個(gè)建議的名稱或在 "名稱" 框中鍵入名稱。
    2. 如果找到了選定表達(dá)式的多個(gè)匹配項(xiàng),則可以選擇相應(yīng)的復(fù)選框來替換所有找到的匹配項(xiàng)。如果您只想替換當(dāng)前的匹配項(xiàng),請清除 "替換所有實(shí)例" 復(fù)選框。
    3. 如果你想聲明新的變量final,請選中 "聲明最終的復(fù)選框"(該選項(xiàng)僅適用于 Java)
    4. 對于 ActionScript,您可以選擇引入常量而不是變量。要做到這一點(diǎn),請選中 "Make constant " 復(fù)選框。

      請注意,IntelliJ IDEA 社區(qū)版中不支持 ActionScript。

    5. 點(diǎn)擊“確定”。

有關(guān)其他語言和框架特定的重構(gòu),請參閱以下各節(jié):

  • 有關(guān) JavaScript 過程,請參閱:在 JavaScript 中提取變量。
  • 有關(guān) Sass 程序,請參閱:為 Sass 提取變量。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號