IntelliJ IDEA提取超類

2018-11-06 10:36 更新

提取超類重構(gòu)有兩個(gè)選項(xiàng):

  • 根據(jù)現(xiàn)有的類創(chuàng)建一個(gè)超類。
  • 重命名原始類,以便它成為新創(chuàng)建的超類的實(shí)現(xiàn)。在這種情況下,IntelliJ IDEA 會(huì)將所有原始類的用法更改為在可能的情況下使用超類。

原始類中的字段和方法可以移動(dòng)到超類。同樣,對(duì)于一個(gè)方法,你只能傳遞方法聲明,而不是在超類中將方法聲明為抽象的實(shí)現(xiàn)。因此,您將擁有超類和從超類繼承的原始類。

提取超類重構(gòu)前

// File Class.java
public class Class {
    public int varInt;
    private double varDouble;
    public static final int CONSTANT = 0;
    public void publicMethod() {
        ...
    }
    public void hiddenMethod() {
        ...
    }
    public void setVarDouble(double var) {
        this.varDouble = var;
    }
    public double getVarDouble() {
        return
                  varDouble;
    }
}

提取超類重構(gòu)后

// File Class.java
public class Class extends SuperClass {
Int;
blicMethod() {
ddenMethod() {
lass.java
ass SuperClass {
 varDouble;
final int CONSTANT = 0;
t void publicMethod();
tVarDouble(double var) {
uble = var;

getVarDouble() {
Double;

提取超類

  1. 在其中一個(gè)視圖中選擇所需的類,或者只是在編輯器中打開它。
  2. 在主菜單或上下文菜單上,選擇:重構(gòu)| 提取| 超類(Refactor | Extract | Superclass)。
  3. 在提取超類對(duì)話框中:
    • 要?jiǎng)?chuàng)建一個(gè)新的超類,請(qǐng)選擇 "提取超類" 選項(xiàng)并指定新超類的名稱。

      要重命名原始類并使其成為新創(chuàng)建的超類的實(shí)現(xiàn),請(qǐng)選擇 "重命名原始類",并在可能的情況下使用超類, 并指定原始類的新名稱。IntelliJ IDEA 會(huì)將所有原始的類用法改為實(shí)現(xiàn)類的用法,只有在它仍然是必要的時(shí)候。

    • 指定新的超類所在的包。
    • 在 "組成超類的成員" 區(qū)域中,選擇要移動(dòng)或委派給超類的類成員。

      若要在當(dāng)前類中保留方法實(shí)現(xiàn),并在提取的超類別中聲明它為抽象,請(qǐng)選中 "使抽象" 復(fù)選框。

    • 在 JavaDoc 區(qū)域,選擇要應(yīng)用于 JavaDoc 的操作。
      • 若要將其保留在其所在的位置,請(qǐng)選擇 "As" 選項(xiàng)。
      • 要將其復(fù)制到提取的超類,請(qǐng)選擇 "復(fù)制" 選項(xiàng)。
      • 要將其移動(dòng)到提取的超類,請(qǐng)選擇 "移動(dòng)" 選項(xiàng)。
  4. 單擊 "重構(gòu)" 以繼續(xù)。

    如果該類在當(dāng)前項(xiàng)目中使用,則 IntelliJ IDEA 建議將該類的實(shí)例替換為新的超類的實(shí)例。如果一個(gè)類實(shí)例引用一個(gè)未在超類??中定義的成員,將不會(huì)被建議替換。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)