Was ist die IntelliJ-Verknüpfung zum Erstellen einer lokalen Variablen?


121

In Eclipse, wenn Sie eine Methode haben:

String MyObject.getValue();

Wenn Sie dies verwenden, können Sie gehen:

MyObject.getValue(); 

Wenn sich Ihr Cursor in der Zeile befindet und Sie CTRL+ 1drücken, wird ein Kontextmenü angezeigt, in dem Sie eine neue lokale Variable zuweisen können. Dies führt zu folgenden Ergebnissen:

String value = MyObject.getValue(); 

Können Sie dies in IntelliJ so einfach tun? Ich habe das Netz durchsucht, aber ohne Erfolg.


10
ProTip, wenn Sie sich nicht an eine Tastenkombination erinnern: Wo immer Sie sich im Code befinden, wenn Sie [Strg] + [Umschalt] + [A] ([cmd] + [Umschalt] + [A] auf dem Mac) drücken, wird diese angezeigt eine Liste von Aktionen nach Namen, können Sie die Aktion
— Christian García

In Eclipse ist es schneller, "Strg-2 l" (Kleinbuchstabe L) auszuführen.
— Duncan Jones

Antworten:


192

Ja! Dies ist das Refactoring von Introduce Variable . Wählen Sie standardmäßig Text aus und drücken Sie dann Ctrl+ Alt+ V(für Mac: ⌘+ ⌥+ V). Wenn der Ausdruck unvollständig oder ungültig ist, wird IntelliJ immer noch eine gute Vermutung darüber anstellen, was Sie gemeint haben, und versuchen, ihn für Sie zu beheben.


2
Vielen Dank. Ich habe STRG + ALT + F verwendet, aber dies bot keine "lokale" Option.
— JARC

29
Cmd + Alt + v für Mac
— Zach Lysobey

Und Sie können Umschalt + Tab drücken, um den Variablentyp auszuwählen. IDEA wird sich für die Zukunft an Ihre Wahl erinnern.
— user674158

1
Gibt es eine Möglichkeit, die Variable final über die Tastatur zu deklarieren, ohne auf das Popup zu klicken?
— Mathias Bader

1
Ich denke, sobald Sie festgelegt haben, dass die Variable beim ersten Mal endgültig sein soll, wird Ihre Auswahl in Zukunft gespeichert (zumindest in IntelliJ 14).
— Jon Onstott

50

IntelliJ 13.1 führte die Postfix-Vervollständigung ein .

Mit Postfix Completion können Sie eine lokale Variable einführen, indem Sie Folgendes eingeben:

MyObject.getValue().var

und drücken ctrl + spaceoder enter.

Es funktioniert sogar in anderen Anweisungen. Beispielsweise:

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

11

für Mac-Benutzer: alt + enteran der Position, an der Sie Ihre Variable generieren möchten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.