IntelliJ IDEA使方法靜態(tài)

2018-11-08 10:26 更新

IntelliJ IDEA 的使方法靜態(tài)重構(gòu)將實例方法轉(zhuǎn)換為靜態(tài)方法,并自動更正方法的所有調(diào)用、實現(xiàn)和重寫。

note:此重構(gòu)也可從 UML 類圖中獲得。

使方法靜態(tài)重構(gòu)示例

示例-1

重構(gòu)前:

class ConnectionPool {
    public int i;
    public int j;
    public void getConnection() {
        ...
    }
}

重構(gòu)后:

class ConnectionPool {
    public int i;
    public int j;
    public static void getConnection(ConnectionPool connectionPool) {
        ...
    }
}

示例-2

重構(gòu)前:

class ConnectionPool {
    public int i;
    public int j;
    public void getConnection() {
        ...
    }
}

重構(gòu)后:

class ConnectionPool {
    public int i;
    public int j;
    public static void getConnection(int i, int j) {
        ...
    }
}

執(zhí)行重構(gòu)

  1. 在 "結(jié)構(gòu)" 視圖中選擇要重構(gòu)的方法,或者右鍵單擊編輯器中的方法名稱。在主菜單或選擇的上下文菜單上,選擇:重構(gòu)|使靜態(tài)(Refactor | Make Static)。將打開 "使方法靜態(tài)" 對話框。
  2. 如果方法引用了任何包含的類字段,請執(zhí)行以下操作之一:若要將整個引用對象作為參數(shù)傳遞給該方法,請選中 "將對象添加為帶有名稱的參數(shù)" 復(fù)選框并輸入?yún)?shù)的名稱。要將引用的字段/變量作為參數(shù)傳遞給方法,請選擇 "為字段添加參數(shù)" 復(fù)選框并在列表中選擇相應(yīng)的字段。您也可以使用 "上移" 和 "下移" 按鈕更改參數(shù)的順序。
  3. 如果該方法不包含對字段或?qū)嵗兞康娜魏我?,則應(yīng)僅指定是否要用類引用替換實例限定符。
  4. 要預(yù)覽結(jié)果,請單擊 "查找" 工具窗口中的 "預(yù)覽" 并檢查重構(gòu)的重用。如果沒有問題,應(yīng)用更改。

對調(diào)用層次結(jié)構(gòu)中的方法進行靜態(tài)重構(gòu)

在調(diào)用層次結(jié)構(gòu)中,如果方法調(diào)用者不包含對實例成員的任何其他引用,則 IntelliJ IDEA 建議您使這些調(diào)用者成為靜態(tài)的。

示例

操作前:

class CallHierarchySample {
    private void foo(int i) { bar(i);}
    private void bar(int i) { baz(i);}
    private void baz(int i) { }
}

操作后:

class CallHierarchySample {
    private static void foo(int i) { bar(i);}
    private static void bar(int i) { baz(i);}
    private static void baz(int i) { }
}

在上述的例子中,重構(gòu)在 baz(int i) 執(zhí)行。所有的調(diào)用者方法也被選為靜態(tài)的。

執(zhí)行重構(gòu)時,將顯示用于傳播靜態(tài)對話框的選擇方法。通過此對話框您可以選擇要使其成為靜態(tài)的調(diào)用方方法。

IntelliJ IDEA方法靜態(tài)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號