Есть ли способ извлечь класс с методами в затмении? - PullRequest
15 голосов
/ 27 ноября 2009

Я пытаюсь преобразовать свой класс в 2 класса. К сожалению, функция извлечения класса eclipse поддерживает только переменные, которые на самом деле не так уж полезны. Есть ли способ извлечь методы или есть плагин, который это делает?

Ответы [ 5 ]

8 голосов
/ 27 ноября 2009

Еще одно решение - CTRL C - CTRL V вашего класса в другой и начать удаление того, что вам не нужно ...

Вы можете выбрать несколько элементов в виде структуры нового класса и выбрать удаление.
Грубый, но эффективный.

alt text
(источник: eclipse.org )

6 голосов
/ 27 ноября 2009

Рефакторинг Extract Superclass гораздо полезнее для этого. Это позволит вам выбрать элементы и методы, которые вы хотите, а затем с помощью «Добавить обязательные» добавить любых членов класса, которые необходимы для работы выбранных вами методов.

2 голосов
/ 15 ноября 2011

В Eclipse 3.7.1 есть возможность перемещать методы и поля из класса. Для этого:

  1. Убедитесь, что целевой класс существует (пустой класс в порядке, если он существует в проекте).
  2. В исходном классе выберите методы, которые вы хотите удалить (для этого отлично подойдет контурное представление), щелкните правой кнопкой мыши выделенную область и выберите «Переместить»
  3. Выберите класс назначения в раскрывающемся списке / Обзор

Ваши участники теперь извлечены. Исправьте все проблемы с видимостью (Source> Generate Getter and Setters очень полезны для этого), и все готово.

0 голосов
/ 27 марта 2015

Eclipse (Luna 4.4.0) теперь имеет «Извлечь метод ...» в качестве опции в контекстном меню Refactor.

0 голосов
/ 27 мая 2010

Прямо сейчас я прибегнул к использованию "класса копирования и удаления", как описано выше, или к извлечению класса IntelliJ, который перемещает и методы, и классы, хотя и с ошибками.

Я надеюсь, что другие проголосуют за исправление ошибки https://bugs.eclipse.org/bugs/show_bug.cgi?id=312347. Мне бы очень хотелось, чтобы в Eclipse был полностью функционирующий класс extract.

...