簡體   English   中英

Eclipse重構:在協作者中移動方法

[英]Eclipse refactoring: move method inside collaborator

我有以下場景:

public class Controller {

  private ModelRepository repository;

  public int getModelCount() {
    int count = 0;
    List<Model> models = repository.getModels();

    for (Model model : models) {
      if (model.somePredicate()) {
        count++;
      }
    }

    return count;
  }
}

現在,我想通過使用一些自動Eclipse重構來移動ModelRepositorygetModelCount方法,以便我最終在控制器中使用它:

public class Controller {

  private ModelRepository repository;

  public int getModelCount() {
    repository.getModelCount();
  }
}

Eclipse Indigo有可能嗎? 如果有,怎么樣? 謝謝!

我不認為有單跳重構,但你可以做到兩個。

首先,突出顯示getModelCount()方法的內容並執行refactor->extract method ,調用new方法類似於countModels

其次,對新的countModels()方法執行refactor->move ,選擇repository字段作為目標。

這將在ModelRepository上為您提供一個名為countModels而不是getModelCount 為了完整性,你可以對此進行refactor->rename ,但無論如何我更喜歡countModels

暫無
暫無

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

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