簡體   English   中英

在日食重構時如何“下拉”參數?

[英]how to “pull down” a parameter when refactor in eclipse?

重構之前:

public interface Service {

    public void hello(Person p);
}

public class BlackPersonServiceImpl implements Service {

    @Override
    public void hello(Person p) {
        //...
    }

}


public class WhitePersonServiceImpl implements Service {

    @Override
    public void hello(Person p) {
        //...
    }

}

public class BeforeRefactor {

    public static void main(String[] args) {
        String str = args[0];
        Person p = JSON.parseObject(str, Person.class);
        Service service = getServiceFromSpringContainer();
        service.hello(p);
    }

    private static Service getServiceFromSpringContainer() {
        //...
        return null;
    }
}

重構后:

public interface Service {

    public void hello(String str);
}

public class WhitePersonServiceImpl implements Service {

    @Override
    public void hello(String str) {
        Person person = JSON.parseObject(str, Person.class);
        //do something to person...
        //...
    }

}

public class AfterRefactor {

    public static void main(String[] args) {
        String str = args[0];
        Service service = getServiceFromSpringContainer();
        service.hello(str);
    }

    private static Service getServiceFromSpringContainer() {
        //...
        return null;
    }
}

那就是我想要的(我認為“下拉”不是描述它的“正確”一詞...)。

我在日食中嘗試了“引入參數對象”,但是它不起作用。

有許多“服務”的實現。 我不想一一更改。

有解決這個問題的好方法嗎?

謝謝!

如果我沒錯,您想在界面中更改方法簽名。
在Doc Refactor Actions中 ,您可以更改方法簽名:

更改參數名稱,參數類型,參數順序並更新對相應方法的所有引用。 此外,可以刪除或添加參數和引發的異常,並且可以更改方法返回類型和方法可見性。
可用:方法或關於選擇方法的文本選擇
快捷鍵: Alt + Shift + C
選項:在“更改方法簽名”對話框中啟用“保留原始方法作為已更改方法的委托”,以保留原始方法。

您可以為單個類和單個方法做一些操作(盡管它很笨拙,並且要執行一系列小的重構步驟),但不能同時跨多個類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM