IntelliJ IDEA在可能的情況下使用接口

2018-11-14 10:36 更新

在可能的情況下使用接口重構(gòu)委托執(zhí)行指定方法 (從基類/接口派生) 到上級類或內(nèi)部類的實例,實現(xiàn)相同的接口。

使用示例

示例-1

操作前:

// File Class.java
public class Class implements Interface {
    public void publicMethod() {
        ...
    }
    public void hiddenMethod() {
        ...
    }
}

操作后:

// File Class.java UNCHANGED
public class Class implements Interface {
    public void publicMethod() {
        ...
    }
    public void hiddenMethod() {
        ...
    }
}

示例-2

操作前:

// File Interface.java
public interface Interface {
    int CONSTANT=0;
    void publicMethod();
}

操作后:

// File Interface.java UNCHANGED
public interface Interface {
    int CONSTANT=0;
    void publicMethod();
}

示例-3

操作前:

// File AnotherClass.java
public class AnotherClass {
    Class firstClass;
    Class secondClass;
    public void method() {
        firstClass.publicMethod();
        firstClass.hiddenMethod();
        secondClass.publicMethod();
        if (secondClass instanceof Class) {
            ...
        }
        ...
    }
}

操作后:

// File AnotherClass.java MODIFIED
public class AnotherClass {
    Class firstClass;
    Interface secondInterface;
    public void method() {
        firstClass.publicMethod();
        firstClass.hiddenMethod();
        secondInterface.publicMethod();
        if (secondInterface instanceof Interface) {
            ...
        }
        ...
    }
}

要盡可能使用接口,請按照下列步驟操作:

  1. 在主菜單或選擇的上下文菜單上,選擇:重構(gòu)| 盡可能使用接口。
  2. 在 "可能的使用接口" 對話框中,選擇將替換當前類的用法的父對象。
  3. 要替換instanceof語句中的當前類名稱,請選中該 “在 instanceof 中使用接口/超類” 選項。

    請注意,如果您使用instanceof語句而不選中此復選框,則可能會收到錯誤的代碼,如:

    if (secondInterface instanceof Class)

    這段代碼將被編譯,但可能會產(chǎn)生不希望的結(jié)果。

  4. 若要在重構(gòu)之前審閱預期的更改并進行最終更正,請單擊 "預覽"。要繼續(xù)而不進行預覽,請單擊 "重構(gòu)"。

    將出現(xiàn) "重命名變量" 對話框。它列出了可以被超類或所選接口替換的類的出現(xiàn)次數(shù)。選擇要替換的用法,并(可選)為每個用戶指定新名稱。

  5. 單擊 "確定" 繼續(xù)。如果您以前單擊過 "預覽" 按鈕, 預覽窗口現(xiàn)在將出現(xiàn)。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號