2010-04-11 11 views
51

Esiste un CTRL + spazio -come modo di un caso interruttore "auto-costruire" intorno a un dato Java Enum in Eclipse? Mi piacerebbe uno stub con tutti i casi Enum ...Eclipse: Java Enum auto-completamento del caso interruttore

+0

Nel caso in cui non si conosce già, è possibile * * ottenere Eclipse per riempire in ogni dichiarazione 'case' per voi (basta digitare' case' e ​​poi Ctrl-spazio) che consente di risparmiare già un giusta quantità di tempo. Escluderà automaticamente i valori che hai già utilizzato ma non garantisce assolutamente che non ne dimentichi uno, come il modello che stai suggerendo. – MatrixFrog

risposta

111

E 'stato in Eclipse per le età. È certamente solo un po 'difficile da trovare. In primo luogo iniziare con

switch (myEnum) { 

} 

A quel punto, il cursore sarà di norma all'interno del blocco di istruzioni {}. È necessario riportare il cusror alla riga con la parola chiave switch e premere Ctrl + e scegliere Aggiungere dichiarazioni case mancanti. In questo modo verrà inserito qualsiasi possibile case.

alt text

È avevo intuitivamente si aspettano questa opzione sia disponibile all'interno il blocco di istruzioni {} pure, ma no.


Aggiornamento: dal Eclipse Keplero (o forse già Juno, ma è così instabile che non ho mai usato davvero), questa opzione è finalmente disponibile tramite Ctrl + all'interno dell'istruzione blocco pure.

enter image description here

+1

Eclipse ha così tante funzioni che sono fantastiche ma difficili da trovare. Ci sono dei buoni riferimenti rapidi? C'era un recente thread SO che aveva molti buoni consigli. –

+4

@Jon: http://stackoverflow.com/questions/54886/hidden-features-of-eclipse – BalusC

+3

Grazie! Questa risposta mi ha aiutato a scoprire una tecnica simile per NetBeans. Dopo aver digitato 'switch (myEnum)', posiziona il cursore all'interno di '(' e premi Alt + Invio per un'opzione a "Aggiungi clausole case mancanti." –

0

È possibile aggiungere i propri modelli di codice utilizzando: Windows-> Preferenze-> Java-> Editor-> Modelli.

Dopo aver aggiunto un modello di codice, digitare abbastanza caratteri del nome del modello per renderlo univoco; digitare CTRL + Spazio; e il tuo codice definito sostituirà i caratteri del nome del modello.

Il modello per l'interruttore è predefinita in Eclipse Galileo. sw + CTRL + Spazio dovrebbe darti un'istruzione switch. Potrebbe essere necessario adattare un modello esistente per darti la combinazione switch-enum.

3

Non so se è possibile farlo come modello, perché il modello dovrebbe sapere quale tipo di enum si stava utilizzando. Ma potresti scrivere un piccolo script per stampare la dichiarazione per te, e poi copiare il suo output nel tuo file sorgente.

public class SwitchWriter { 
    public static void printSwitchStatement(String varName, Class<?> E) { 
    System.out.format("switch(%s) {\n", varName); 
    for (Object o : E.getEnumConstants()) { 
     System.out.format("case %s:\n // TODO: Auto-generated switch statement stub\n break;\n", o); 
    } 
    System.out.println("default:\n // TODO: Auto-generated switch statement stub\n}"); 
    } 
} 

uscita di SwitchWriter.printSwitchStatement("action", java.awt.Desktop.Action.class):

switch(action) { 
case OPEN: 
    // TODO: Auto-generated switch statement stub 
    break; 
case EDIT: 
    // TODO: Auto-generated switch statement stub 
    break; 
case PRINT: 
    // TODO: Auto-generated switch statement stub 
    break; 
case MAIL: 
    // TODO: Auto-generated switch statement stub 
    break; 
case BROWSE: 
    // TODO: Auto-generated switch statement stub 
    break; 
default: 
    // TODO: Auto-generated switch statement stub 
} 
Problemi correlati