Подтвердить что ты не робот

Может ли eclipse извлечь второй класс в файл класса в собственный файл

Я часто реорганизую код, создавая внутренний класс внутри класса, над которым я работаю. Когда я закончил, я переместил все это в новый файл класса. Это делает рефакторинг кода в новый класс чрезвычайно простым, потому что A) я имею дело только с одним файлом, а B) я не создаю новые файлы, пока у меня не будет довольно хорошей идеи имени/имен (иногда это заканчивается как более одного класса).

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

Это кажется тривиальным рефактором и действительно очевидным, но я не могу понять нажатия клавиш/жесты/что бы это ни случилось. Я пробовал перетаскивание, меню, контекстные меню и просмотр быстрых клавиш.

Кто-нибудь знает этот?

[edit] Это уже классы "верхнего уровня" в этом файле, а не внутренние классы, а "Move", похоже, не хочет создавать для меня новый класс. Это трудный способ, которым я обычно это делаю - включает в себя выход, создание пустого класса, возвращение и перемещение. Я хотел бы сделать все это за один шаг.

4b9b3361

Ответ 1

Прости, что раньше я дал неправильный ответ. Я перепроверялся, и это не очень хотело, чтобы вы этого хотели. Я нашел решение для вас, хотя, опять же, в 3.4.

Выделите класс, сделайте копию CTRL-C или вырежьте CTRL-X, щелкните по пакету, в который вы хотите включить класс, и сделайте пасту CTRL-V. Eclipse будет автоматически генерировать класс для вас.

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

Ответ 2

В Eclipse 3.6 вы можете: Рефакторинг → Переместить тип в новый файл

Ответ 3

Щелкните правой кнопкой мыши имя класса (в исходном коде) и выберите "Refactor" → "Преобразовать тип члена в верхний уровень". Однако он не позволяет вам выбирать пакет.

Ответ 4

Для IntelliJ IDEA/Android Studio: Рефактор → Переместить → Переместить внутренний класс MyInnerClass на верхний уровень

Ответ 5

Может быть сделано в 2 рефакторингах:

  • Преобразование типа участника на верхний уровень

  • Переместить