Как быстро создать конструктор intellij

Обновлено: 02.05.2024

Краткая шпаргалка по сочетаниям клавиш в IntelliJ IDEA

Как ранее уже сообщалось, я начал активно изучать возможности IntelliJ IDEA. В частности, я стараюсь запомнить наиболее востребованные хоткеи, чтобы выполнять большую часть работы, не отрывая руки от клавиатуры, как это происходит при программировании в Vim. По моим наблюдениям, это реально экономит кучу времени. Я сделал для себя шпаргалку по хоткеям IDEA, которую вы найдете под катом. Полагаю, она также пригодится кому-то из посетителей данного блога.

Примечание: Те же сочетания клавиш работают и в других продуктах JetBrains, например, PyCharm и CLion.

Ниже не приводятся общеизвестные и очевидные сочетания вроде Ctr+C, Ctr+V или Ctr + S. В IntelliJ IDEA многие хоткеи имеют парный хоткей отличающийся только тем, что в нем дополнительно участвует клавиша Shift. Обычно она добавляет в том или ином виде выделение текста. Например, Ctr + End переводит курсор в конец файла, а Ctr + Shift + End выделяет код от текущей позиции до конца файла. Догадаться о существовании парных хоткеев несложно, поэтому далее они не приводятся. Наконец, если в любом диалоге IntelliJ IDEA вы видите подчернутые буквы, знайте, что сочетание Alt + буква равносильно использованию соответствующего контрола (обычно кнопок). Например, быстро запушить код в репозиторий можно путем нажатия Ctr + K, Alt + I, Alt + P, а затем снова Alt + P.

Итак, основные сочетания следующие.

Редактирование:

Ctr + Z Undo, отменить последнее действие
Ctr + Shift + Z Redo, отменить последнюю отмену действия
Ctr + Shift + V Расширенная вставка из буфера обмена (с историей)
Ctr (+ Shift) + W Инкрементальное выделение выражения
Ctr + влево/вправо Перемещение между словами
Ctr + вверх/вниз Прокрутка кода без изменения позиции курсора
Ctr + Home/End Переход в начало/конец файла
Shift + Del (Ctr + Y) Удаление строки, отличие в том, где потом окажется курсор
Ctr + Del Удалить от текущей позиции до конца слова
Ctr + Backspace Удалить от текущей позиции до начала слова
Ctr + D Дублировать текущую строку
Tab / Shift + Tab Увеличить / уменьшить текущий отступ
Ctr + Alt + I Выравнивание отступов в коде
Ctr + Alt + L Приведение кода в соответствие code style
Ctr + / Закомментировать/раскомментировать текущую строку
Ctr + Shift + / Закомментировать/раскомментировать выделенный код
Ctr + -/+ Фолдинг, свернуть/развернуть
Ctr + Shift + -/+ Фолдинг, свернуть/развернуть все
Ctr + Shift + . Сделать текущий скоуп сворачиваемым и свернуть его
Ctr + . Сделать текущий скоуп несворачиваемым
Ctr + R Замена в тексте
Ctr + Shift + R Замена во всех файлах

Окна, вкладки:

Alt + влево/вправо Перемещение между вкладками
Ctr + F4 Закрыть вкладку
Alt + циферка Открытие/закрытие окон Project, Structure, Changes и тд
Ctr + Tab Switcher, переключение между вкладками и окнами
Shift + Esc Закрыть активное окно
F12 Открыть последнее закрытое окно
Ctr + колесико Zoom, если он был вами настроен

Закладки:

F11 Поставить или снять закладку
Ctr + F11 Аналогично с присвоением буквы или цифры
Shift + F11 Переход к закладке (удаление — клавишей Delete)
Ctr + Число Быстрый переход к закладке с присвоенным числом

Подсказки и документация:

Ctr + Q Документация к тому, на чем сейчас курсор
Ctr + Shift + I Показать реализацию метода или класса
Alt + Q Отобразить имя класса или метода, в котором мы находимся
Ctr + P Подсказка по аргументам метода
Ctr + F1 Показать описание ошибки или варнинга
Alt + Enter Показать, что нам предлагают «лампочки»

Поиск:

Дважды Shift Быстрый поиск по всему проекту
Ctr + Shift + A Быстрый поиск по настройкам, действиям и тд
Alt + вниз/вверх Перейти к следующему/предыдущему методу
Ctr + [ и Ctr + ] Перемещение к началу и концу текущего скоупа
Ctr + F Поиск в файле
Ctr + Shift + F Поиск по всем файлам (переход — F4)
Ctr + F3 Искать слово под курсором
F3 / Shift + F3 Искать вперед/назад
Ctr + G Переход к строке или строке:номеру_символа
Ctr + F12 Список методов с переходом к их объявлению
Ctr + E Список недавно открытых файлов с переходом к ним
Ctr + Shift + E Список недавно измененных файлов с переходом к ним
Ctr + H Иерархия наследования текущего класса и переход по ней
Ctr + Alt + H Иерархия вызовов выбранного метода
Ctr + N Поиска класса по имени и переход к нему
Ctr + Shift + N Поиск файла по имени и переход к нему
Ctr + B Перейти к объявлению переменной, класса, метода
Ctr + Alt + B Перейти к реализации
Ctr + Shift + B Определить тип и перейти к его реализации
Shift + Alt + влево Перемещение назад по стеку поиска
Shift + Alt + вправо Перемещение вперед по стеку поиска
F2 / Shift + F2 Переход к следующей / предыдущей ошибке
Shift + Alt + 7 Найти все места, где используется метод / переменная
Ctr + Alt + 7 Как предыдущий пункт, только во всплывающем окне

Генерация кода и рефакторинг:

Ctr + Space Полный автокомплит
Ctr + Shift + Space Автокомплит с фильтрацией по подходящему типу
Alt + / Простой автокомплит по словам, встречающимся в проекте
Ctr + I Реализовать интерфейс
Ctr + O Переопределить метод родительского класса
Ctr + J Генерация шаблонного кода (обход по итератору и тд)
Ctr + Alt + J Обернуть выделенный код в один из шаблонов
Alt + Insert Генератор кода — сеттеров, зависимостей в pom.xml и тд
Shift + F6 Переименование переменной, класса и тд во всем коде
Ctr + F6 Изменение сигнатуры метода во всем коде
F6 Перемещение метода, класса или пакета
F5 Создать копию класса, файла или каталога
Shift + F5 Создать копию класса в том же пакете
Alt + Delete Безопасное удаление класса, метода или атрибута
Ctr + Alt + M Выделение метода
Ctr + Alt + V Выделение переменной
Ctr + Alt + F Выделение атрибута
Ctr + Alt + C Выделение константы (public final static)
Ctr + Alt + P Выделение аргумента метода
Ctr + Alt + N Инлайнинг метода, переменной, аргумента или константы
Ctr + Alt + O Оптимизация импортов

Прочее:

Ctr + ~ Быстрое переключение цветовой схемы, code style и тд
Alt + F12 Открыть/закрыть терминал
F10 Запустить последнюю запущенную программу или тест
Shift + F10 Запустить открытую в редакторе программу или тест
Shift + Alt + F10 Запустить что-то из списка того что запускалось раньше
Ctr + F2 Остановить программу
Ctr + Alt + A Добавить в систему контроля версий
Ctr + K Сделать коммит в систему контроля версий
Ctr + Shift + K Сделать пуш в систему контроля версий
Ctr + Shift + P В Scala-плагине определяет implicit параметры
Ctr + Shift + Q В Scala-плагине определяет implicit преобразования

Понятное дело, в этой шпаргалке названы далеко не все возможности IntelliJ IDEA. Всем заинтересованным лицам я настоятельно рекомендую вот прямо брать и читать ее замечательную документацию, там очень много интересного. Жаль только, что документация не доступна в виде одного большого PDF файла.

Дополнение: В последних версиях IDEA можно использовать несколько курсоров, разместив их либо при помощи комбинации Alt+Shift+ЛКМ, либо вертикальным выделением при помощи клика средней клавишей мыши. Держа на вооружении сочетание Ctr + влево/вправо, осуществляющего переход между словами, а также другие, можно очень удобно редактировать сразу несколько строк кода.

Idea hot keys - 1

Обычно в таких постах люди берут документацию от JetBrains и просто вываливают все комбинации горячих клавиш без разбора. Да, я тоже хранил такие странички в закладках, и да я тоже их больше не открывал. Но мы пойдем своим путем. Я расскажу только о том, чем сам пользуюсь, расскажу чем они помогают. Некоторые банальны, возможно вы все это уже знаете, тогда просто ставь лайк =) Я начну с самых нужных мне комбинаций горячих клавиш и пойду к самым банальным, но используемым мною.

Погнали:

Alt + F8 — evaluate expression окно. Очень полезная вещь, как узнал про неё, пользовался всегда. Сейчас на работе за соседним столом, на мониторе, висит стикер, на котором написано «Alt+F8». В данном окошке можно выполнять все, что угодно. Например, если у вас есть проблемное место в коде и 10 вариантов как решить его. Вместо того, чтобы 10 раз запускать код, доходите до него в дебаге, открываете окно evaluate expression и прогоняете все варианты PROFIT.

Ctrl + P — показывает вам список принимаемых методом параметров. Когда первый раз узнал про эту комбинацию, очень радовался т.к. приходилось переписывать вызов метода, чтобы увидеть список параметров. Так же если вы знаете все параметры и их много, это окошко постоянно выскакивает и мешает? Ctrl+P уберет его =)

Idea hot keys - 3

Ctrl + Q — во вложенном окне покажет документацию к методу, чтобы не бегать в исходный код. Помогает почитать про принимаемые параметры и про возвращаемое значение.

Idea hot keys - 4

В туже степь Ctrl + B — переход в исходный код класса\метода либо переход к объявлению переменной. Alt + F7 — покажет, где используется переменная\метод, альтернатива Ctrl+F. Пользуюсь редко, но сейчас вспомнил.

Idea hot keys - 5

Shift + Shift (Double Shift, 2 раза подряд быстро нажать shift) — поиск всего и везде (ищет классы и файлы но не методы). Когда ты помнишь, что где-то что-то видел и даже пару букв из названия помнишь. Это окошко поищет за тебя. При поиске классов можно указывать часть имени или только первые 2 буквы. Например, BuRe найдет BufferedReader.

Ctrl + Shift + T – создание тестового класса. Если используется система сборки, то создаст класс в соответствии с правилами сборщика. Если не используется, то создаст рядом.

Idea hot keys - 7

Idea hot keys - 8

Ctrl + Shift + Space – умный комплишен, предлагает вам варианты подстановки значений с учетом контекста. Какой бы умный ни был, я вроде сам неплохо контекст понимаю, но иногда выручает.

Idea hot keys - 9

Ctrl + Shift + A – поиск действия. Если вы вдруг забыли hot keys для действия, но помните его имя, можете его найти. Найти можно вообще любое действие и запустить, например дебаг.

Оригинальные комбинации горячих клавиш закончились, сейчас пойдут банальные (причем без картинок): Ctrl + Alt + V – если вы написали, что-то и надо положить это в переменную, нажимаете эти клавиши и идея сама выведет тип + задаст стандартное имя. Очень помогает, когда ты запутался и не знаешь, какой тип переменной тебе нужен. Так же работает, если дописать в конец выражения ".var" и нажать Tab или Enter после нажатия Tab будет: Ctrl + Alt + M – вынесет выделенный кусок кода в отдельный метод, hot key для рефакторинга очень полезный. Alt + Enter – комплишен для решения любых проблем. На самом деле выручает почти всегда. Если есть какая-либо ошибка компиляции, если я не знаю точного решения, первым делом смотрю, что предложит идея. Alt + Insert – автогенерация всего и вся, методов, конструкторов, классов… (тут будет картинка, она снизу)

Idea hot keys - 12

Ctrl + O –переопределение методов родителя Ctrl + K – при работе с гитом – коммит Ctrl + Shift + K – при работе с гитом - пуш Ctrl + Alt + S – настройки IDEA Ctrl + Alt + Shit + S – настройки проекта На этом, пожалуй, все. Я не считаю, что мышка это зло и настоящий кодер пользуется только клавиатурой. Да наверно это иногда удобно. Но часто приходиться лезть в браузер, что-то искать и возвращаться. Если надо внести мелкие изменения или просто что-то посмотреть, лень тянуться к клаве, если мышка уже в руке. Но те, что я написал заменяют длинную последовательность действий на одно нажатие. Кстати для идеи есть плагин, которые поможет вам освоить hotkeys. Каждый раз, когда вы будете использовать мышку, он будет показывать надоедливую надпись. Там будет написано, какую комбинацию горячих клавиш надо было использовать и сколько раз вы пользовались мышкой. Мне он через неделю надоел =) Плагин называется Key Promoter X, найти можно в настройках идеи (вы же помните, как туда попасть?). Видео от JetBrains откуда я впервые узнал о некоторых комбинациях. Пересматривал несколько раз, за раз все не унесешь. И да последняя комбинация, которая пригодилась мне однажды. Ctrl + Shift + U - смена регистра у слова. Например, если переменная теперь константа, не переписывать имя, а использовать Ctrl + Shift + U

Здравствуйте! В этой статье я расскажу вам про шорткаты. Будет много картинок и если их несколько, то первая это до, а следующие это уже после нажатия шорткатов. Надеюсь, будет несложно и познавательно.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 1

Горячие клавиши в IntelliJ IDEA это очень мощное оружие, которые многие недооценивают. При уверенном использовании они способны на порядок увеличить скорость разработки. Полный список существующих можно посмотреть нажав Alt+h+k. Поэтому ниже будет скриншот с моей идеи и я расскажу про те, которые использую чаще остальных. В конце я покажу как писать свои шорткаты. Поехали!)

Руководство пользователя IntelliJ IDEA: горячие клавиши - 2

Это моя среда разработки, но не рабочая, тут я учил Спринг и проверял примеры кода, поэтому использовал я её крайне редко, тем не менее, за пол года шорткаты сохранили меня от написания 17 тысяч символов. Достаточно хороший аргумент, чтобы начать их использовать, не так ли?) Пойду по прядку: Ctrl + Space – показывает список вариантов которым можно завершить ввод.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 3

Ctrl + w – умное выделение текста. Сначала выделяет слово, где стоит курсор, а дальше ближайшие команды и так вплоть до всего документа.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 5

Руководство пользователя IntelliJ IDEA: горячие клавиши - 6

Руководство пользователя IntelliJ IDEA: горячие клавиши - 8

Руководство пользователя IntelliJ IDEA: горячие клавиши - 9

Ctrl + Shift + Space – тоже, что и Ctrl + Space, только учитывает статические поля и методы. Так же помогает инициализировать поле подходящим типом.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 11

Ctrl + b – переходит к объявлению поля, метода или касса. Тот же эффект, что и при нажатии Ctrl + ЛКМ

Руководство пользователя IntelliJ IDEA: горячие клавиши - 12

Руководство пользователя IntelliJ IDEA: горячие клавиши - 13

Руководство пользователя IntelliJ IDEA: горячие клавиши - 15

Руководство пользователя IntelliJ IDEA: горячие клавиши - 16

Теперь давайте я подробно расскажу, как создать свой шорткат. Нам нужно попасть в настройки, это делается комбинацией Ctrl+Alt+s и заходим в Keymap:

Я установил, что комбинация Shift+Alt+e будет удалять всё, что находится справа от курсора на выбранной строке.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 19

Руководство пользователя IntelliJ IDEA: горячие клавиши - 20

Именно этот шорткат выглядит весьма бесполезным, но у вас есть свободная комбинация и знание, как это делать, можете заюзать на том, что вам необходимо. На работе я его использую для Annotate, она нужна для работы с гитом и показывает, кто делал изменения в коде и когда. Теперь давайте немного про автозаполнение. Что это такое? Это возможность одной аббревиатурой ввести несколько слов или даже блок кода. Пример: вместо ручного ввода пустого метода main, можно воспользоваться первыми буквами этих слов:

Подобных сочетаний клавиш существует много и, например, цикл я уже давно вручную не вводил(iter или itar). Можно создать для самых популярных объявлений переменных и в будущем это сэкономит кучу времени. Это делается так, заходим в настройки (Ctrl + Alt + s) и выбираем Editor, затем Live Templates.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 23

Руководство пользователя IntelliJ IDEA: горячие клавиши - 24

Выбираем категорию “other” и нажимаем на зеленый плюсик справа или используем шорткат Alt+Insert, потом “Live Template”. Устанавливаем аббревиатуру, описание и определение нашей личной форме автозаполнения. Пока можете просто делать по примеру, чтобы разобраться, переделать его позже не составит труда уже)

Руководство пользователя IntelliJ IDEA: горячие клавиши - 25

И напоследок, есть такая комбинация как Ctrl + Alt + t – она оборачивает выделенную команду в блок кода

Руководство пользователя IntelliJ IDEA: горячие клавиши - 28

Так вот, мы самостоятельно можем написать такую команду. Например, я хочу оборачивать код в System.out.println(); нажимаем Ctrl + Alt + t и выбираем самый последний пункт

Руководство пользователя IntelliJ IDEA: горячие клавиши - 30

В прошлый раз мы выбирали “other” теперь нажимаем на “surround”, Alt+Insert, дальше Live Templates вводим данные, что на картинке снизу и сохраняем.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 31

Теперь используем наш шаблончик. Выбираем, что мы хотим вывести в консоль, нажимаем Ctrl+Alt+t, потом то, что мы вводили в поле Abbreviation (чем меньше там символов, тем прекраснее), в нашем случае это S, и у нас получилось.

Руководство пользователя IntelliJ IDEA: горячие клавиши - 33

Придется только удалить точку с запятой в конце перед скобкой. В своей работе я стараюсь максимально часто использовать шорткаты и считаю, что хорошее знание своей среды разработки не только выделит на фоне остальных разработчиков, но и значительно улучшит производительность. Спасибо за внимание, буду рад услышать отзывы!)

Руководство пользователя IntelliJ IDEA: Ещё немного горячих клавиш! - 1

Зазубривать все комбинации клавиш в IDEA - это плохая идея. Всеми возможностями вы сразу пользоваться не будите, а из-за каши в голове вы можете путать новые комбинации, которые хотели бы применить. К тому же через некоторое время, когда вам понадобятся знания, которые уже покрылись толстым слоем пыли, об неиспользованных комбинациях - вы их просто не вспомните. Поэтому в этой статье я постараюсь описать те комбинации, которыми я довольно часто пользуюсь(надеюсь они помогут не только мне, фьюф). И так поехали! ;) У всех была ситуация, когда: "мне надо скопировать этот кусок, но в буфере тоже нужная вещь" В этой ситуации приходит на помощь: Ctrl + D Это команда копирования строки(куска строки, куска кода класса, да и всего чего хочешь, что можно выделить в файле), при этом она копирует код ту же строку, где заканчивается "курсор выделения". Поэтому, если вы хотите скопировать на следующую строку, захватывайте и её =)

Руководство пользователя IntelliJ IDEA: Ещё немного горячих клавиш! - 2

Руководство пользователя IntelliJ IDEA: Ещё немного горячих клавиш! - 3

Когда не очень хочется удалять какой-либо кусок кода, но расставлять комментарий на многих строчках - не слишком удобно. Сущесвуют клавиши и на это случай жизни: Ctrl + / Ctrl + Shift + / В первом варианте, вы закомментируете кусок кода - однострочным комментарием: Во втором варианте, коментарий будет много строчный:

Руководство пользователя IntelliJ IDEA: Ещё немного горячих клавиш! - 4

(Спойлер: снять коментарий с помощью этих комбинаций тоже можно) А может случится так, что ты описался в названии класса, а потом думаешь, удалять его или можно его как-то переименовать. Его можно переименовать! Для этого можно жмакнуть правой кнопкой мыши по названию класса в проекте: Либо по имени в самом классе(выбираем такие же положения меню). Но! Как вы увидели на скриншотах - там есть небольшая подсказка на сочетание клавиш: Shift + F6 Есть так же функция удаления строки, без её выделения. Главное чтобы там был курсор, остальное детали =) Ctrl + Y Если у тебя есть код, но тебе его надо обернуть каким-либо блоком(if / for / try и всякое такое), тебя спасут: Ctrl + Alt + T Полезное сочетание, для наведения порядка в коде: Ctr + Alt + I Оно ровняет отступы в коде(если выделен кусок кода, то в данном куске, если нет - на той строке, где стоит курсор). Пример до: После:

IntelliJ IDEA provides multiple ways to generate common code constructs and recurring elements, which helps you increase productivity. These can be either file templates used when creating a new file, custom or predefined live templates that are applied differently based on the context, various wrappers, or automatic pairing of characters.

Additionally, IntelliJ IDEA provides code completion and Emmet support.

This topic describes ways to generate standard code constructs specific to Java: constructors, method overrides and implementations, getters and setters, and so on. From the main menu, select Code | Generate Alt+Insert to open the popup menu with available constructs that you can generate.

Here is a video that demonstrates how to generate various code constructs in IntelliJ IDEA:

Generate constructors

IntelliJ IDEA can generate a constructor that initializes specific class fields using values of corresponding arguments.

Generate a constructor for a class

On the Code menu, click Generate Alt+Insert .

In the Generate popup, click Constructor for Kotlin.

If the class contains fields, select the fields to be initialized by the constructor and click OK .

The following code fragment shows the result of generating a constructor for a class:

Generate delegation methods

IntelliJ IDEA can generate methods that delegate behavior to the fields or methods of your class. This approach makes it possible to give access to the data of a field or method without directly exposing this field or method.

Generate a delegation method for a class

On the Code menu, click Generate Alt+Insert .

In the Generate popup, click Delegate Methods .

Select the target field or method, and click OK .

Select the desired methods to be delegated and click OK .

The following code fragment shows the result of delegating the get(i) method of the Calendar class inside another class:

Generate equals() and hashCode() methods

The Java super class java.lang.Object provides two methods for comparing objects:

public boolean equals(Object obj) returns true if the object passed to it as the argument is equal to the object on which this method is invoked. By default, this means that two objects are stored in the same memory address.

public int hashCode() returns the hash code value of the object on which this method is invoked. The hash code must not change during one execution of the application but may change between executions.

It is generally necessary to override the hashCode() method if you override equals() because the contract for hashCode() is that it must produce the same result for objects that are equal. For more information, see the API specification for the Object class.

Generate equals() and hashCode() for a class

From the Code menu, click Generate Alt+Insert .

In the Generate popup, click equals() and hashCode() .

Select a velocity template from the Template list.

You can also click to open the Templates dialog, where you can select an existing template or create a custom template.

Select checkboxes if you want to accept subclasses and use getters during code generation.

Select the fields that should be used to determine equality, and click Next .

Select the fields to use for calculating the hash code value. You can choose only from fields that were selected on the previous step (for determining equality). Click Next .

Select the fields that contain non-null values. This optional step helps the generated code avoid checks for null and thus improves performance. Click Finish .

If the overrides for equals() and hashCode() methods already exist in the class, you will be prompted whether you want to delete them before generating new ones.

The following code fragment shows the result of overriding the equals() and hashCode() methods:

Generate getters and setters

IntelliJ IDEA can generate accessor and mutator methods ( getters and setters ) for the fields in your classes. Generated methods have only one argument, as required by the JavaBeans API.

The getter and setter method names are generated by IntelliJ IDEA according to your code generation naming preferences.

On the Code menu, click Generate Alt+Insert .

In the Generate popup, click one of the following:

Getter to generate accessor methods for getting the current values of class fields.

Setter to generate mutator methods for setting the values of class fields.

Getter and Setter to generate both accessor and mutator methods.

Select the fields to generate getters or setters for and click OK .

You can add a custom getter or setter method by clicking and accessing the Getter/Setter Templates dialog. If a field is not in the list, then the corresponding getter and setter methods are already defined for it.

The following code fragment shows the result of generating the getter and setter methods for a class with one field var :

Note for PHP

The following is only valid when the PHP plugin is installed and enabled.

In the PHP context, getters and setters are generated using the PHP Getter/Setter/Fluent setter file templates. By default, as specified in these templates, setters are generated with the set prefix, and getters with the is or get prefix according to the inferred property type – boolean or non-boolean . The prefix is the value of the $ variable in the default getter template. The templates are configured in the Code tab on the File and Code Templates.

Generate toString()

The toString() method of the Java super class java.lang.Object returns the string representation of the object. This method can be used to print any object to the standard output, for example, to quickly monitor the execution of your code. By default, toString() returns the name of the class followed by the hash code of the object. You can override it to return the values of the object's fields, for example, which can be more informative for your needs.

Override the toString() method for a class

On the Code menu, click Generate Alt+Insert .

In the Generate popup, click toString() .

Configure the following:

Select the template for generating the toString() method from the Template list.

Select the fields that you want to return in the generated toString() method. By default, all the available fields are selected. Click Select None to generate a toString() method that returns only the class name.

Select the Insert @Override checkbox if necessary.

Click the Settings button to open the toString() Generation Settings dialog. where you can tune the behavior and add custom templates.

If the toString() method is already defined in the class, by default, you will be prompted whether you would like to delete this method before proceeding. You can use the When method already exists group of options in the toString() Generation Settings dialog to change this behavior: either automatically replace existing method or generate a duplicating method.

The following code fragment shows the result of generating the toString() method for a class with several fields defined:

The following code inspections are related to the toString() method:

Class does not override 'toString()' method can be used to identify classes in which the toString() method is not defined. This inspection uses the exclude settings to ignore classes with fields that are not supposed to be dumped. An additional setting is to exclude certain classes using a regular expression matching their class name. As default, this is used to exclude any exception classes.

Field not used in 'toString()' method can be used to identify fields that are not dumped in the toString() method. For example, if you added new fields to a class, but forgot to add them to the toString() method. Change the severity of this inspection to show errors as warnings. This will highlight any unused fields in the editor and indicate their location as yellow markers on the scroll bar.

Custom code generation templates

Templates used for generating getters and setters, as well as equals() , hashCode() , and toString() methods are written in the Velocity template language. Although you can't modify predefined templates, you can add your own custom templates to implement necessary behavior.

IntelliJ IDEA provides the following variables for Velocity templates:

The following variables can be used in templates for generating getters and setters:

The current version of the Java Runtime Environment (JRE).

The current class.

Provides access to various code generation helper methods.

Provides the ability to format names according to the current code style.

Field for which getter or setter is generated.

The following variables can be used in templates for generating the toString() method:

The current version of the Java Runtime Environment (JRE).

The current class.

Provides access to various code generation helper methods.

Provides the ability to format names according to the current code style.

List of fields in the current class.

The following variables can be used in templates for generating the equals() method:

The current version of the Java Runtime Environment (JRE).

The current class.

Provides access to various code generation helper methods.

Provides the ability to format names according to the current code style.

List of fields in the current class.

Predefined name of the object on which the equals() method is called.

Predefined name of the equals() method parameter.

The name of the parameter in the equals() method of the superclass if applicable.

Option passed from the wizard.

Whether the superclass has equals() declared.

The following variables can be used in templates for generating the hashCode() method:

The current version of the Java Runtime Environment (JRE).

The current class.

Provides access to various code generation helper methods.

Provides the ability to format names according to the current code style.

List of fields in the current class.

Whether the superclass has hashCode() declared.

In IntelliJ IDEA Ultimate, the code completion popup is available for custom code generation template variables. Users of IntelliJ IDEA Community Edition can refer to the relevant source code.

Productivity tips

Use code completion

Depending on the current context, IntelliJ IDEA can suggest generating relevant code constructs in the code completion popup. For example, when the caret is inside a Java class, the completion popup will contain suggestions for adding getters, setters, equals() , hashCode() , and toString() methods.

Читайте также: