Est-il possible pour moi de convertir a String
en une valeur équivalente dans un Enumeration
, en utilisant Java.
Je peux bien sûr le faire avec une grande if-else
déclaration, mais je voudrais éviter cela si possible.
Compte tenu de cette documentation:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html
Je n'ai pas trop bon espoir que cela soit possible sans si ni déclaration de cas.
En supposant que vous utilisez des énumérations Java 5 (ce qui n'est pas si sûr puisque vous mentionnez une ancienne
Enumeration
classe), vous pouvez utiliser lavalueOf
méthode de lajava.lang.Enum
sous-classe:la source
Utiliser la méthode statique
valueOf(String)
définie pour chaqueenum
.Par exemple, si vous avez,
enum MyEnum
vous pouvez direMyEnum.valueOf("foo")
la source
J'aurais peut-être sur-conçu ma propre solution sans me rendre compte qu'elle
Type.valueOf("enum string")
existait réellement.Je suppose que cela donne un contrôle plus granulaire, mais je ne suis pas sûr que ce soit vraiment nécessaire.
Je suppose que vous échangez
IllegalArgumentException
pourRuntimeException
(ou toute exception que vous souhaitez lancer) qui pourrait potentiellement nettoyer le code.la source