Що таке ярлик IntelliJ для створення локальної змінної?


121

У Eclipse, якщо у вас є метод:

String MyObject.getValue();

Використовуючи це, ви можете перейти:

MyObject.getValue(); 

Якщо курсор знаходиться на рядку, а ви натискаєте CTRL+, 1ви отримуєте контекстне меню "призначити нову локальну змінну", в результаті чого:

String value = MyObject.getValue(); 

Чи можете ви це зробити так само легко в IntelliJ? Я шукаю в мережі, але без успіху.


10
ProTip, якщо ви не пам'ятаєте комбінацію клавіш: Де б ви не знаходилися в коді, якщо ви натиснете [Ctrl] + [Shift] + [A] ([cmd] + [Shift] + [A] в Mac), він відобразиться У списку дій за назвою ви можете ввести дію, яке потрібно зробити (наприклад, Змінна) та виконати його
Крістіан Гарсія

У Eclipse швидше робити "Ctrl-2 l" (нижній регістр L).
Дункан Джонс

Відповіді:


192

Так! Це введення змінної рефакторингу. За замовчуванням виберіть текст і натисніть Ctrl+ Alt+ V(для Mac: + + V). Якщо вираз є неповним або недійсним, IntelliJ все одно добре здогадається про те, що ви мали на увазі, і спробує виправити це для вас.


2
Дякую. Я використовував CTRL + ALT + F, але це не пропонувало "локальний" варіант.
JARC

29
Cmd + Alt + v для Mac
Zach Lysobey

І ви можете натиснути Shift + Tab, щоб вибрати тип змінної, IDEA запам’ятає ваш вибір на майбутнє.
користувач674158

1
Чи є можливість оголосити змінну остаточною за допомогою клавіатури, не клацаючи на спливаючому вікні?
Матіас Бадер

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

50

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

За допомогою завершення Postfix ви можете ввести локальну змінну, ввівши:

MyObject.getValue().var

і натискання ctrl + spaceабо enter.

Це навіть працює всередині інших тверджень. Наприклад:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.