Действия рефакторинга

Команды меню рефакторинга:

Имя

Описание

Переименовать

Переименовывает выбранный элемент и (если эта опция включена) исправляет все ссылки на элементы (в том числе находящиеся в других файлах).
Доступно: Методов, параметров методов, полей, локальных переменных, типов, параметров типов, констант перечислений, модулей компиляции, пакетов, исходных папок, проектов и выбранных фрагментов текста, преобразующиеся в один из этих типов элементов
Комбинация клавиш: Alt + Shift + R
Опции: Переименование типа позволяет переименовать переменные и методы с теми же именами. Включите опцию 'Обновлять переменные и методы с такими же именами' в окне Переименовать тип. Выберите опцию 'Настроить...' для настройки стратегии сопоставления совпадающих имен типов.

Переименование пакета позволяет переименовать и его подпакеты. Включите опцию 'Переименовать подпакеты' в окне Переименовать пакет.

Переместить

Перемещает выбранные элементы и (если эта опция включена) исправляет все ссылки на элементы (в том числе находящиеся в других файлах).
Доступно для: Методов экземпляра (доступных для перемещения в компонент), одного или нескольких статических методов, статических полей, типов, блоков компиляции, пакетов, исходных папок и проектов, а также выделенных фрагментов текста, преобразующихся в один из этих типов элемента
Комбинация клавиш: Alt + Shift + V
Опции: Для запуска того рефакторинга можно использовать перенос объектов с помощью мыши в Проводнике пакетов.
Изменить сигнатуру метода Позволяет изменить имена параметров, типы параметров и порядок параметров, а также обновить все ссылки на соответствующий метод. Кроме того, можно удалять и добавлять параметры, а также изменять тип возврата метода и область его видимости.
Доступно для: Методов или выбранного фрагмента текста, преобразующемуся в метод.
Опции: Включите опцию 'Хранить исходные методы в качестве делегатов для измененных методов' в окне Изменить сигнатуру метода чтобы сохранять исходные методы.
Извлечь метод Создает метод, содержащий текущие выбранные операторы или выражение, и заменяет выбранный фрагмент на ссылку на новый метод. Эта функция полезна, когда необходимо избавиться от слишком длинных, громоздких или чрезмерно сложных методов.
Доступно для: Для получения допустимого диапазона выбора можно воспользоваться опцией  Развернуть выбор в в меню Правка.
Комбинация клавиш: Alt + Shift + M
Извлечь локальную переменную Создает переменную, присваиваемую текущему выбранному выражению, и заменяет выбранный фрагмент на ссылку на новую переменную.
Доступно: Выбранный фрагмент текста, преобразующийся в локальную переменную. Для получения допустимого диапазона выбора можно воспользоваться опцией  Развернуть выбор в в меню Правка.
Комбинация клавиш: Alt + Shift + L
Извлечь константу Создает статическое окончательное поле на основе выбранного выражения, подставляет ссылку на поле, а также (необязательно) вносит исправления в другие места, где встречается это выражение.
Доступно для: Выражения с константой или выбранный фрагмент текста, преобразующийся в выражение с константой.
Встроить Позволяет встроить локальные переменные, методы или константы.
Доступно: Методов, статических окончательных полей и выбранных фрагментов текста, преобразующихся в методы, статические окончательные поля или локальные переменные
Комбинация клавиш: Alt + Shift + I
Преобразовать анонимный класс во вложенный Позволяет преобразовать анонимный внутренний класс в класс элементов.
Доступно: Анонимных внутренних классов
Преобразовать тип объекта в верхний уровень Создает новый модуль компиляции Java для выбранного типа элемента, при необходимости обновляя все ссылки. Для нестатических типов элементов при необходимости добавляется специальное поле, обеспечивающее доступ к предыдущему окружающему экземпляру.
Доступно: Типов элементов или текст, преобразующегося в тип элемента
Преобразовать локальную переменную в поле Преобразует локальную переменную в поле. Если переменная была инициализирована при создании, то операция перемещает начальное значение переменной в объявление нового поля или в конструкторы класса.
Доступно: Выбранный фрагмент текста, преобразующийся в локальную переменную
Извлечь суперкласс Извлекает общий суперкласс из набора сестринских типов. Выбранные сестринские типы становятся непосредственными суперклассами извлеченного суперкласса после применения рефакторинга.
Доступно: Типы
Опции: Включите опцию 'Использовать извлеченный класс при возможности' для применения созданного класса где это возможно. См. раздел Применение супертипа при возможности.
Извлечь интерфейс Создает новый интерфейс с набором методов и заставляет выбранный класс реализовывать интерфейс.
Доступно: Типы
Опции: Включите опцию 'Использовать полученный тип интерфейса при возможности' для применение созданного интерфейса где это возможно. См. раздел Применение супертипа при возможности.
Использовать базовый тип, если это возможно Заменяет вхождения типа на один из его супертипов после идентификации всех мест, где такая замена возможна.
Доступно: Типы
Понизить уровень Перемещает набор методов и полей из класса в его производные классы.
Доступно: Одного или нескольких методов и полей, объявленных в том же типе или в выбранном фрагменте текста внутри поля или метода
Повысить уровень Перемещает поле или метод в базовый класс его объявляющего класса или (в случае методов) объявляет метод как абстрактный в базовом классе.
Доступно: Одного или нескольких методов, полей и типов элементов, объявленных в том же типе или в выбранном фрагменте текста внутри поля, метода или типа элемента
Ввести косвенный вызов Создает статический метод косвенного вызова, делегируемый выбранному методу.
Доступно: Методов или выбранного фрагмента текста, преобразующемуся в метод.
Опции: Включите опцию 'Перенаправлять все вызовы методов' для замены всех вызовов исходного метода на вызовы метода косвенного вызова.
Представить фабрику Создает новы метод фабрики, вызывающий выбранный конструктор и возвращающий созданный объект. Все ссылки на конструктор будут заменены на вызовы метода фабрики.
Доступно: Объявления конструктора
Представить параметр Выражение будет заменено на ссылку на новый параметр метода. Все функции, вызывающие метод, будут обновлены, чтобы выражение передавалось как значение этого параметра.
Доступно: Выбранные фрагменты текста, преобразующиеся в выражения
Инкапсулировать поле Заменяет все ссылки на поле методами получения и установки.
Доступно: Поле или выбранный фрагмент текст, преобразующийся в поле
Обобщить объявленный тип Пользователь может выбрать базовый тип текущего типа ссылки. Если тип ссылки можно изменить без ошибок, будет выполнен рефакторинг.
Доступно: Указатели типов и объявления полей, локальные переменные и параметры со ссылочными типами
Вычислить аргументы параметризуемого типа Заменяет вхождения непараметризованных типов на параметризованные типы после идентификации всех мест, где такая замена возможна.
Доступно: Проектов, пакетов и типов
Опции: 'Предполагать, что clone() возвращает экземпляр типа получателя'. Хорошо спроектированные классы обычно именно так и поступают, но если вы знаете, что ваш код нарушает это правило, выключите переключатель.

'Оставить аргументы типов без ограничений как непараметризованные (а не угадывать их как <?>)'. Если ограничения для элемента, такого как ArrayList a, не заданы, то при включенном переключателе Eclipse будет предлагать параметр подстановки, заменяя ссылку на ArrayList<?>.
Перенести файл JAR Переносит файл JAR в пути компоновки проекта в вашей рабочей области в новую версию, возможно, с помощью сведений рефакторинга, хранящихся в новом файле JAR, чтобы избежать фатальных изменений.
Доступно: Файлов JAR в пути компоновки
Создать сценарий Создает сценарий для рефакторингов, примененных в рабочей области. Сценарии рефакторинга можно сохранить в файл или скопировать в буфер обмена. См. раздел Применение сценариев.
Доступно: Всегда
Применение сценариев Применяет сценарий рефакторинга к проектам в рабочей области. Сценарии рефакторинга можно загрузить из файла или из буфера обмена. См. раздел Создать сценарий.
Доступно: Всегда
Хронология Позволяет просмотреть хронологию рефакторинга рабочей области и предлагает возможность удалить рефакторинг из хронологии.
Доступно: Всегда

Команды рефакторинга запускаются также из контекстных меню многих панелей и редактора Java.

Связанные концепции

Поддержка рефакторинга

Связанные ссылки

Окна рефакторинга
Параметры Java