Я испытываю затруднения при нахождении правильной возможности перефактора для следующего сценария:
У меня есть кодекс как это (в Outer.java):
public class Outer {
// ... class stuff
public static class Inner {
// ... inner class stuff
}
}
Я ищу способ выбрать Внутренний, и иметь преобразованный в класс высшего уровня в своем собственном .java
исходный файл. Я знаю, что с этим довольно легко сделать вручную скопировать/вставить и т.д., но на внутренний класс ссылаются в большом количестве мест, и я хотел бы выбор перефактора обращаться с изменением везде, на это ссылаются.
Я попробовал выбор Refactor -> Extract Class...
но это делает что-то странное с названной областью data
то, что я не вполне понимаю.
Версия затмения - 3.5.1 Галилео.
Как я повторно учитываю статический внутренний класс, чтобы быть классом высшего уровня?
Править: Не может полагать, что я пропустил выбор сделать это. Спасибо за все Ваши правильные ответы, +1 Вам всем. Я должен буду все еще принять ответ, поэтому если больше будет полезная информация, например, gotchas со сценарием, есть все еще цель к отъезду ответа.
Это так легко, я не могу поверить, что я пропустил его:
с курсором в любом месте внутри внутреннего типа, щелкните правой кнопкой мыши и выберите:
Refactor -> Convert Тип участника до верхнего уровня ...
(Нет ярлыка в настройках по умолчанию)
Это автоматически извлекает внутренний тип и помещает его в свой собственный файл в том же пакете и каталоге, что и внешний тип.
Обновление
В более поздних версиях Eclipse это рефакторинг был переименован в «Переместить тип на новый файл»
Класс извлечения не то, что вы хотите.
Я только что сделал это, используя Eclipse 3.4.2
У меня есть 3.4.1, и если я щелкнул щелкнуть правой кнопкой мыши на внутреннем,> Refactor, у меня есть опция «The Covert Client Type до верхнего уровня.», Который именно вы хотите.
Использование Refactor -> Преобразовать элемент на верхний тип уровня