Простой способ изменить порядок методов класса Java в IntelliJ?

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

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

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


person Péter Török    schedule 13.05.2010    source источник
comment
Я думаю, что лучшим решением будет инструмент форматирования, который автоматически упорядочивает ваши методы. Проза: методы должны быть упорядочены по способу вызова. Также как если бы вы прочитали статью в газете.   -  person Chris311    schedule 28.11.2016


Ответы (6)


Вы можете выбрать имя метода и нажать: Ctrl + Shift + Up или Ctrl + Shift < / kbd> + Вниз для перемещения вверх и вниз.

В OS X: Cmd + Shift + Up или Cmd + Shift + < kbd> Вниз

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

person retronym    schedule 13.05.2010
comment
разве нет чего-то, что можно просто переупорядочить, например, в алфавитном порядке? - person Jaime Hablutzel; 19.06.2011
comment
Ссылка мертва, кажется, правильная: java.net/projects/rearranger - person stian; 06.12.2012
comment
@stian - я отредактировал сообщение, чтобы указать на страницу плагина на веб-сайте JetBrains, поскольку по опубликованной вами ссылке, похоже, нет доступных загрузок - person adrian; 29.10.2013
comment
Для Mac OS X: Cmd + Shift + Up / Cmd + Shift + Down - person Christian García; 06.08.2014
comment
Плагин не работает с версиями IntelliJ 2016 и ошибкой, упомянутой в saurabheights. ответ еще не зафиксирован. Таким образом, кажется, что на данный момент нет возможности автоматически переупорядочивать методы в порядке глубины. - person Suzana; 28.11.2016
comment
Начиная с IDEA 16 он доступен через меню: Code > Move Statement Up/Down - person Lu55; 02.02.2017

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

введите описание изображения здесь

person georger    schedule 30.01.2017
comment
Как я могу применить выбор порядка сразу к одному или нескольким правилам? - person Derek Mahar; 08.05.2018
comment
Это вообще не работает. Использование этой конфигурации и выполнение перестановки ничего не дает. - person Mulgard; 29.09.2020
comment
Это решение работает с порядком по умолчанию. Спасибо! - person Mr. Polywhirl; 06.11.2020
comment
Нажав «Код» - ›Изменить порядок кода, можно сразу применить конфигурацию к текущему файлу! - person Jameson; 28.02.2021

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

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

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

IntellijRearrangeMethodsInDFO

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

RearrangeActionMenuButton

введите описание изображения здесь

person saurabheights    schedule 27.11.2016

Наведите курсор на строку определения метода (необязательно нажимать ctrl + shift + up или ctrl + shift + down для перемещения вверх или вниз соответственно.

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

person Yishai    schedule 13.05.2010

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

person Jacob Mattison    schedule 13.05.2010

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

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

и отметьте поле "изменить код"

person Alon    schedule 12.03.2018