Qual è il collegamento IntelliJ per creare una variabile locale?


121

In Eclipse se hai un metodo:

String MyObject.getValue();

Quando lo usi puoi andare:

MyObject.getValue(); 

Se il cursore si trova sulla riga e premi CTRL+ 1, ottieni un menu contestuale per 'assegnare una nuova variabile locale', risultando nel seguente:

String value = MyObject.getValue(); 

Puoi farlo facilmente in IntelliJ? Ho cercato in rete ma senza successo.


10
Suggerimento se non ricordi una scorciatoia da tastiera: ovunque ti trovi nel codice, se premi [Ctrl] + [Shift] + [A] ([cmd] + [Shift] + [A] in Mac) verrà visualizzato un elenco di azioni per nome, puoi digitare l'azione che vuoi fare (es.Variabile) ed eseguirla
Christian García

In Eclipse, è più veloce fare "Ctrl-2 l" (L minuscola).
Duncan Jones

Risposte:


192

Sì! Questo è il refactoring di Introduce Variable . Per impostazione predefinita, seleziona del testo, quindi premi Ctrl+ Alt+ V(per Mac: + + V). Se l'espressione è incompleta o non valida, IntelliJ farà comunque una buona ipotesi su ciò che intendevi e proverà a risolverlo per te.


2
Grazie. Stavo usando CTRL + ALT + F ma questo non offriva un'opzione "locale".
JARC

29
Cmd + Alt + v per Mac
Zach Lysobey

E puoi premere Maiusc + Tab per scegliere il tipo di variabile, IDEA ricorderà la tua scelta per il futuro.
user674158

1
C'è la possibilità di dichiarare la variabile finale tramite tastiera, senza fare clic sul popup?
Mathias Bader

1
Penso che una volta specificato che la variabile dovrebbe essere finale la prima volta, la tua selezione viene ricordata in futuro (almeno in IntelliJ 14).
Jon Onstott

50

IntelliJ 13.1 ha introdotto il completamento di Postfix .

Con Postfix Completion puoi introdurre una variabile locale digitando:

MyObject.getValue().var

e premendo ctrl + spaceo enter.

Funziona anche all'interno di altre dichiarazioni. Per esempio:

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

11

per utenti Mac: alt + enternella posizione in cui desideri generare la tua variabile

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.