2009-05-15 9 views
16

Existe-t-il un modèle ou quelque chose pour générer une instruction switch pour Java enum dans Eclipse?Existe-t-il un modèle ou quelque chose pour générer une instruction switch pour Java enum dans Eclipse?

Alors que quand j'ai eu une énumération et que je veux avoir un switch avec toutes les valeurs, je n'ai pas eu à tout écrire moi-même?

+1

Ne répondant pas à votre question, mais vous pouvez envisager le refactoring "remplacer le commutateur avec le polymorphisme". – CurtainDog

+1

Voir http://stackoverflow.com/questions/859563/java-enums-and-switch-statements-the-default-case pour un meilleur moyen que d'utiliser switch. Dans le modèle de visiteur court. – KitsuneYMG

+3

En note pour les deux commentaires ci-dessus, il existe de nombreuses situations où l'activation d'une énumération est valide. Si l'énumération est utilisée comme un "code de type", le polymorphisme est probablement une meilleure option. Si l'énumération représente des états, alors le lien kts pointe dehors est utile (la réponse dedans est fondamentalement le modèle d'état de GoF implémenté dans une énumération) –

Répondre

18

Il y en a certainement au moins 3,5.

A partir de quelque chose comme ceci:

switch(a.getType()){ 

} 

Tout ce que vous devez faire est de cliquer sur le mot-clé switch et appuyez sur CTRL + 1. Vous devriez obtenir une liste déroulante qui inclut l'option "Ajouter des instructions de cas manquantes"

+0

Fonctionne également avec eclipse 3.4 – meriton

+0

Nice, merci. Et en plus de cela, l'utilisation de suggestions Ctrl-1 aussi avec d'autres cas que des problèmes simples est une bonne chose à savoir. – Touko

+1

+1. Notez que si "La constante de type Enum non couverte par 'switch'" est configurée pour générer un avertissement/une erreur, CTRL + 1 sur cette ligne ne fonctionne pas. Vous devez sélectionner le mot clé 'switch', puis appuyez sur CTRL + 1. –

1

Le contenu d'Eclipse 3.4 vous aidera à écrire le code. Il suffit de taper case et appuyez sur Ctrl + Espace et vous obtiendrez une liste d'énumérations inutilisées.

+0

Oui, mais alors je dois encore écrire chacun séparément même si l'achèvement accélère le processus en haut – Touko

+2

vous pouvez essayer http://3pintech.com/products/fast-code/templates.htm#createswitchcaseenum..avec celui-ci peut générer la structure switch-case/if-else-if de enum spécifique. Ce plugin a beaucoup d'autres fonctionnalités utiles, vous pouvez jeter un oeil à http://3pintech.com/products.htm. – Krishnaveni