IntelliJ IDEA重構(gòu):安全刪除

2018-11-13 10:38 更新

安全刪除重構(gòu)也可從 UML 類圖中獲得

IntelliJ IDEA 安全刪除重構(gòu)可讓您安全地從源代碼中刪除文件和符號(hào)。

為了確保刪除是安全的,IntelliJ IDEA 會(huì)查找被刪除的符號(hào)的用法。如果找到這種用法,則可以在符號(hào)被刪除之前探索它們并在代碼中進(jìn)行必要的更正。

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

  1. 選擇要?jiǎng)h除的項(xiàng)目。
  2. 執(zhí)行下列操作之一:按 Alt+Delete。從主菜單或上下文菜單中選擇:重構(gòu)|安全刪除。從主菜單選擇:重構(gòu)| 重構(gòu)此選項(xiàng)(Ctrl+Shift+Alt+T),然后選擇安全刪除。
  3. 在 "安全刪除" 對話框中,選擇必要的選項(xiàng),然后單擊 "確定"。
  4. 如果重構(gòu)可能是不安全的,則會(huì)打開 "檢測到的使用實(shí)例" 對話框。查看使用情況。點(diǎn)擊這個(gè)按鈕來查看你的代碼中你將要?jiǎng)h除的項(xiàng)目在哪里。結(jié)果, "查找工具" 窗口隨即打開。分析您的代碼并進(jìn)行必要的更正。然后單擊 "執(zhí)行重構(gòu)"。(如果您想從頭開始重新運(yùn)行重構(gòu),請單擊 "重新運(yùn)行安全刪除"。IntelliJ IDEA 會(huì)再次檢查重構(gòu)是否安全。)無論如何都要?jiǎng)h除。單擊此按鈕可刪除該項(xiàng)目,而不必查看其用途。

調(diào)用層次結(jié)構(gòu)的安全刪除參數(shù)重構(gòu)

如果參數(shù)僅通過調(diào)用層次結(jié)構(gòu)傳遞, 并且不在該層次結(jié)構(gòu)之外的任何地方使用, 則 "安全刪除重構(gòu)" 允許您沿層次結(jié)構(gòu)傳播參數(shù)刪除。

安全刪除重構(gòu)示例

重構(gòu)前:

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

重構(gòu)后:

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

在這個(gè)例子中,對 baz (int i) 中的 i 參數(shù)執(zhí)行了重構(gòu)。此更改已傳播到所有調(diào)用方法。

執(zhí)行重構(gòu)時(shí), 將顯示用于傳播參數(shù)刪除對話框的 Select 方法。這個(gè)對話框讓你選擇參數(shù)應(yīng)該被刪除的調(diào)用方法。

IntelliJ IDEA

對調(diào)用層次結(jié)構(gòu)中的方法的安全刪除重構(gòu)

當(dāng)您對某個(gè)方法執(zhí)行安全刪除重構(gòu)時(shí),IntelliJ IDEA 會(huì)分析相應(yīng)的調(diào)用層次結(jié)構(gòu),查找可能變得不可用的方法,并建議您也刪除這些方法。

示例

重構(gòu)前:

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

重構(gòu)后:

class CallHierarchySample {



}

在這個(gè)例子中,重構(gòu)是在該 foo(int i) 方法上執(zhí)行的。調(diào)用層次結(jié)構(gòu)中所有下面的方法都被選中刪除。

執(zhí)行重構(gòu)時(shí), 將顯示 "選擇方法來層疊安全刪除" 對話框。這個(gè)對話框讓你選擇要?jiǎng)h除的方法。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)