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.

JARC
quelle
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.

John Feminella
quelle
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);
micha
quelle
11

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

Olivier Royo
quelle