Вопрос по refactoring, java, intellij-idea, methods – Простой способ переупорядочить методы класса Java в IntelliJ?

58

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

В Eclipse AFAIK есть представление, похожее на представление структуры IntelliJ, где я могу перетаскивать методы. Тем не менее, это не работает в IntelliJ, и я не мог найти никаких подсказок от его помощи либо.

Я использую IntelliJ 9.0.2, чтобы быть конкретным.

Я думаю, что лучшим решением будет инструмент форматирования, который автоматически упорядочивает ваши методы. Проза: методы должны быть упорядочены так, как их вызывают. Также как вы читаете статью в газете. Chris311

Ваш Ответ

6   ответов
0

Существует автоматизированный способ, который вы можете позже настроить

Код -> показать диалог переформатирования файла

и поставьте галочку в поле «изменить код»

83

Вы можете выбрать имя метода и нажать:Ctrl+сдвиг+вверх или жеCtrl+сдвиг+вниз двигаться вверх и вниз.

На OS X:Cmd+сдвиг+вверх или жеCmd+сдвиг+вниз

Помимо этогоПлагин перестановки позволяет быстро перемещать методы и даже определять стандартное упорядочение на основе вашего соглашения о кодировании.

Ссылка не работает, кажется, это правильная:java.net/projects/rearranger stian
Начиная с IDEA 16 это доступно через меню:Code > Move Statement Up/Down Lu55
Для Mac OS X: Cmd + Shift + Up / Cmd + Shift + Down Christian García
плагин переставителя не работает с версиями IntelliJ 2016 и ошибка, упомянутая в ответе saurabheights, еще не исправлена. Так что, похоже, в настоящее время нет способа автоматически переставить методы в порядке глубины. Suzana
7

Наведите курсор на строку определения метода (нет необходимости и нажмитеCtrl+сдвиг+вверх или жеCtrl+сдвиг+вниз, чтобы двигаться вверх или вниз соответственно.

Вы также можетеCtrl+сдвиг+цифровая панель - быстро свернуть все, чтобы вы могли сосредоточиться на передвижении (обычный- работает на моем ноутбуке, не знаю почему) иCtrl+сдвиг+цифровая клавиатура + вернуться, чтобы увидеть все (ctrl-shift-equals работает и на моем ноутбуке).

2

Выделите блок текста (несколько раз нажмите Ctrl-W), а затем используйте Ctrl-Shift-Up и Ctrl-Shift-Down, чтобы переместить его.

8

IntelliJ имеет встроенную систему, которая позволяет вам указать, как упорядочить ваши методы. Вам нужно перейти в Настройки (Ctrl + Alt + S) -> Редактор -> Стиль кода -> Java -> Расположение (вкладка) и прокручивать вниз, пока не найдете значки сmethods, Там вы можете манипулировать опциями, чтобы сортировать их по видимости или по алфавиту, или объединять связанные. Вот скриншот моих настроек, которые будут упорядочивать методы автоматически по видимости (общедоступный, защищенный, приватный) и по алфавиту (a-z). Синие блики показывают текущие выбранные правила.

Как я могу применить выбор заказа к одному или нескольким правилам одновременно? Derek Mahar
11

Не идеальный ответеще, из-за ошибки в IntelliJ.

Хотя IntelliJ предлагает эту функцию неявно, но она должна быть включена, а также исправлена. Предлагаемый способ OP - это техническая организация методов в порядке глубины. Однако, если вы используете упорядочение по ширине (которое работает правильно), это должно значительно сократить ручную работу по перемещению функций, объединяя все методы вызывающего и вызываемого абонентов.

Ссылка на выпуск:https://youtrack.jetbrains.com/issue/IDEA-149524, Пожалуйста, проголосуйте за его решение.

Соответствующим действием для этого является Перестановка кода. У него нет назначенного ключа, но вы можете определить свой собственный, используя Preferences-> Keymap.

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