2010-04-11 8 views
51

¿Hay un modo CTRL + de "autoconstrucción" de una caja de conmutadores alrededor de un Enum de Java en Eclipse? Me gustaría un talón con todos los casos de Enum ...Eclipse: autocompletado de Java Enum de la caja del conmutador

+0

En caso de que no lo sabe ya, que * puede * conseguir Eclipse para llenar en cada sentencia 'case' para usted (sólo tiene que escribir' case' y luego Ctrl-espacio) que ya ahorra buena cantidad de tiempo. Automáticamente excluirá los valores que ya ha utilizado, pero no garantiza que no olvide ninguno, como la plantilla que está sugiriendo. – MatrixFrog

Respuesta

111

Ha estado en Eclipse para las edades. Es cierto que es un poco difícil de encontrar. En primer lugar comenzar con

switch (myEnum) { 

} 

En ese momento, el cursor normalmente sería en el interior del bloque de instrucciones {}. Usted necesita poner su cusror de nuevo a la línea con la palabra clave y pulse switchCtrl + y selecciona Add faltan declaraciones de casos. De esta forma insertará cualquier posible case.

alt text

te había intuitivamente esperan que esta opción esté disponible dentro del bloque de instrucciones {} así, pero no.


actualización: desde Eclipse Kepler (o quizás ya Juno, pero es tan inestable que realmente nunca la utilicé), esta opción es finalmente disponible a través de Ctrl + dentro de la instrucción bloquear también.

enter image description here

+1

Eclipse tiene tantas características que son increíbles pero difíciles de encontrar. ¿Hay alguna buena referencia rápida? Hubo un hilo reciente de SO que tenía muchos buenos consejos. –

+4

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

+3

¡Gracias! Esta respuesta me ayudó a descubrir una técnica similar para NetBeans. Después de tipear 'switch (myEnum)', coloque el cursor dentro de '(' y presione Alt + Intro para una opción para "Agregar cláusulas de casos faltantes"." –

0

Puede agregar sus propias plantillas de código usando: Windows-> Preferencias-> Java-> Editor-> Plantillas.

Una vez que haya agregado una plantilla de código, escriba suficientes caracteres del nombre de la plantilla para que sea única; escriba CTRL + Espacio; y su código definido reemplazará los caracteres del nombre de la plantilla.

La plantilla para el interruptor está predefinida en Eclipse Galileo. sw + CTRL + Space debería darle una declaración de cambio. Es posible que tenga que adaptar una plantilla existente para darle la combinación de cambio-enumeración.

3

No sé si es posible hacerlo como plantilla, porque la plantilla debería saber qué tipo de enumeración estaba usando. Pero podría escribir una pequeña secuencia de comandos para imprimir la declaración por usted, y luego simplemente copiar su salida en su archivo fuente.

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}"); 
    } 
} 

salida de 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 
} 
Cuestiones relacionadas