Eclipse рефакторинг: метод перемещения внутри соавтора - PullRequest
3 голосов
/ 29 августа 2011

У меня есть следующий сценарий:

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;
  }
}

Теперь я бы хотел переместить метод getModelCount в ModelRepository, используя некоторый автоматизированный рефакторинг Eclipse, чтобы в конечном итоге получить это в контроллере:

public class Controller {

  private ModelRepository repository;

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

Возможно ли это в Eclipse Indigo? Если да, то как? Спасибо!

1 Ответ

5 голосов
/ 29 августа 2011

Я не думаю, что существует рефактор с одним прыжком, но вы можете сделать это двумя.

Сначала выделите содержимое метода getModelCount() и выполните refactor->extract method, вызываяновый метод, например, countModels.

Во-вторых, выполните refactor->move для нового метода countModels(), выбрав поле repository в качестве пункта назначения.

Это оставит вас сметод на ModelRepository называется countModels, а не getModelCount.Для полноты вы можете сделать refactor->rename, но я все равно предпочитаю countModels.

...