Есть ли способ извлечь класс с помощью методов в eclipse?

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

Ответы

Ответ 1

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

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

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

Ответ 2

Рефакторинг "Extract Superclass" гораздо полезнее для этого. Он позволит вам выбрать участников и методы, которые вы хотите, а затем использовать "Добавить обязательно", чтобы добавить любых членов класса, которые необходимы для того, чтобы ваши методы работали.

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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