web-dev-qa-db-fra.com

Eclipse: Java Enum auto-complétion du boîtier du commutateur

Existe-t-il un moyen de type CTRL + de "construction automatique" d'un cas de commutateur autour d'un Java Enum dans Eclipse? Je voudrais un stub avec tous les cas Enum ...

55
Maroloccio

Il a été dans Eclipse pendant des siècles. C'est certes un peu difficile à trouver. Commencez par

switch (myEnum) {

}

À ce stade, votre curseur se trouve généralement dans le bloc d'instructions {}. Vous devez remettre votre client sur la ligne avec le mot clé switch et appuyer sur Ctrl+1 et choisissez Ajoutez les déclarations de cas manquantes . De cette façon, il insérera tout case possible.

alt text

Vous vous attendriez intuitivement à ce que cette option soit disponible à l'intérieur du bloc d'instructions {} aussi, mais non.


pdate: depuis Eclipse Kepler (ou peut-être déjà Juno, mais c'est tellement instable que je ne l'ai jamais vraiment utilisé), cette option est enfin disponible via Ctrl+1 à l'intérieur du bloc d'instructions.

enter image description here

122
BalusC

Je ne sais pas s'il est possible de le faire en tant que modèle, car le modèle devrait savoir quel type d'énumération vous utilisiez. Mais vous pouvez écrire un petit script pour imprimer la déclaration pour vous, puis copier simplement sa sortie dans votre fichier source.

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

Sortie 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
}
4
MatrixFrog

Vous pouvez ajouter vos propres modèles de code à l'aide de: Windows-> Préférences-> Java-> Éditeur-> Modèles.

Une fois que vous avez ajouté un modèle de code, tapez suffisamment de caractères du nom du modèle pour le rendre unique; tapez CTRL + espace; et votre code défini remplacera les caractères du nom du modèle.

Le modèle de commutateur est prédéfini dans Eclipse Galileo. sw + CTRL + Space devrait vous donner une instruction switch. Vous devrez peut-être adapter un modèle existant pour vous donner la combinaison switch-enum.

0
richj