Как повторно учесть статический внутренний класс к классу высшего уровня в Затмении?

Я испытываю затруднения при нахождении правильной возможности перефактора для следующего сценария:

У меня есть кодекс как это (в Outer.java):

public class Outer {

    // ... class stuff

    public static class Inner {
        // ... inner class stuff   
    }
}

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

Я попробовал выбор Refactor -> Extract Class... но это делает что-то странное с названной областью data то, что я не вполне понимаю.

Версия затмения - 3.5.1 Галилео.

Как я повторно учитываю статический внутренний класс, чтобы быть классом высшего уровня?


Править: Не может полагать, что я пропустил выбор сделать это. Спасибо за все Ваши правильные ответы, +1 Вам всем. Я должен буду все еще принять ответ, поэтому если больше будет полезная информация, например, gotchas со сценарием, есть все еще цель к отъезду ответа.

34
задан Grundlefleck 22 January 2010 в 14:59
поделиться

4 ответа

Это так легко, я не могу поверить, что я пропустил его:

с курсором в любом месте внутри внутреннего типа, щелкните правой кнопкой мыши и выберите:
Refactor -> Convert Тип участника до верхнего уровня ...

(Нет ярлыка в настройках по умолчанию)

Это автоматически извлекает внутренний тип и помещает его в свой собственный файл в том же пакете и каталоге, что и внешний тип.

Обновление

В более поздних версиях Eclipse это рефакторинг был переименован в «Переместить тип на новый файл»

49
ответ дан 27 November 2019 в 16:41
поделиться

Класс извлечения не то, что вы хотите.

Я только что сделал это, используя Eclipse 3.4.2

  1. Выбрать внутреннее
  2. правой кнопкой мыши «Refactor-> Конвертировать тип элемента на верхний уровень ...»
3
ответ дан 27 November 2019 в 16:41
поделиться

У меня есть 3.4.1, и если я щелкнул щелкнуть правой кнопкой мыши на внутреннем,> Refactor, у меня есть опция «The Covert Client Type до верхнего уровня.», Который именно вы хотите.

2
ответ дан 27 November 2019 в 16:41
поделиться

Использование Refactor -> Преобразовать элемент на верхний тип уровня

2
ответ дан 27 November 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: