Что такое ярлык IntelliJ для создания локальной переменной?


121

В Eclipse, если у вас есть метод:

String MyObject.getValue();

При использовании этого вы можете:

MyObject.getValue(); 

Если вы наведете курсор на строку и нажмете CTRL+, 1вы получите контекстное меню, чтобы «назначить новую локальную переменную», что приведет к следующему:

String value = MyObject.getValue(); 

Можете ли вы сделать это в IntelliJ так же легко? Я поискал в сети, но безуспешно.


10
ProTip, если вы не помните сочетание клавиш: где бы вы ни находились в коде, если вы нажмете [Ctrl] + [Shift] + [A] ([cmd] + [Shift] + [A] на Mac), он покажет список действий по имени, вы можете ввести действие, которое вы хотите выполнить (например, переменная), и выполнить его
Christian García

В Eclipse быстрее выполнять «Ctrl-2 l» ​​(строчная L).
Дункан Джонс

Ответы:


192

Ага! Это рефакторинг « Введение переменных» . По умолчанию выделите текст и нажмите Ctrl+ Alt+ V(для Mac: + + V). Если выражение является неполным или недействительным, IntelliJ все равно хорошо догадывается о том, что вы имели в виду, и попытается исправить это за вас.


2
Спасибо. Я использовал CTRL + ALT + F, но здесь не было «локального» варианта.
JARC

29
Cmd + Alt + v для Mac
Зак Лисоби 08

И вы можете нажать Shift + Tab, чтобы выбрать тип переменной, IDEA запомнит ваш выбор на будущее.
user674158

1
Есть ли возможность объявить переменную final с клавиатуры, не нажимая на всплывающее окно?
Матиас Бадер,

1
Я думаю, что как только вы укажете, что переменная должна быть final в первый раз, ваш выбор запомнится в будущем (по крайней мере, в IntelliJ 14).
Джон Онстотт

50

IntelliJ 13.1 представил завершение Postfix .

С помощью Postfix Completion вы можете ввести локальную переменную, набрав:

MyObject.getValue().var

и нажав ctrl + spaceили enter.

Это работает даже внутри других утверждений. Например:

foo.someMethod(myObject.getValue().var);

11

для пользователей Mac: alt + enterв том месте, где вы хотите сгенерировать свою переменную

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.