[英]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.