Извлечение класса в Eclipse - PullRequest
       1

Извлечение класса в Eclipse

7 голосов
/ 01 ноября 2010

Это должно быть возможно, но я просто не могу понять это в Eclipse. У меня

/** ClassA.java */
class A {
  ...
}

class B {
  ...
}

и я хотел бы выбрать класс B и извлечь его в свой файл, чтобы я получил:

/** ClassA.java */
class A {
  ...
}

и

/** ClassB.java */
class B {
  ...
}

Как мне это сделать в Eclipse?

Ответы [ 5 ]

11 голосов
/ 01 ноября 2010

Вот как вы это делаете (работает в Eclipse 3.5):

  1. Выберите код для извлечения:

    /** ClassB.java */
    class B {
      ...
    }
    
  2. вырезано

  3. Щелкните правой кнопкой мыши на пакете, в который вы хотите его поместить

  4. Выберите пасту. (Тогда Организуйте импорт , если необходимо.)

6 голосов
/ 01 ноября 2010

В моем Eclipse (3.6 - Helios SR1) я выделяю имя типа (B), затем щелкаю правой кнопкой мыши всплывающее меню и выбираю Refactor> Move Type to New File ....

Изменить: в предыдущих версиях он назывался «Преобразовать тип элемента в верхний уровень», но был обновлен для работы не только с типами элементов:

http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html

Переместить тип в новый рефакторинг файла.

Рефакторинг Преобразовать тип элемента в верхний уровень переименован в Переместить тип в новый файл и теперь позволяет перемещать любой вторичный тип в файлесобственный файл.Действие продолжает работать для типов элементов.

1 голос
/ 01 ноября 2010

Нет никакой функциональности, о которой я знаю. Вам нужно будет создать выбранный java-файл и вставить класс в новый файл. Исправьте имена объявлений импорта и пакета (если это необходимо).


РЕДАКТИРОВАТЬ Лучший способ сделать это: просто создайте пустой файл B.java, вернитесь к A.java, выделите B.java, щелкните правой кнопкой мыши и выберите Refactor -> Move (Alt+Shift+V для краткости). Это переместит класс B в B.java.

Я проверил, и это работает. При необходимости вам может понадобиться управлять импортом.

1 голос
/ 01 ноября 2010

Если конкретной функции нет, то создайте новый класс, скопируйте и вставьте содержимое B, а затем нажмите CTRL - SHIFT - O на обоихфайлы (или, по крайней мере, A.java) для очистки импорта должны это сделать.

Это не очень распространенная вещь, которую нужно просить, и это довольно легко сделать вручную.

Edit: Вы также можете создать B.java, а затем использовать Refactoring-> Move on B в вашем A.java, чтобы переместить его в B.java.Похоже, он не копировал импорт, хотя когда я это делал, тогда как когда я копировал и вставлял вручную, он автоматически захватывал импорт.

0 голосов
/ 01 ноября 2010

Поместите каретку где-нибудь внутри класса B (возможно, это должно быть внутри имени класса).Выберите Refactor -> Move type to new File.

(Это имя действия в Eclipse 3.6. Я полагаю, что в более ранних версиях оно было Move member type to top level)

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...