Convertit une Chaîne sur l'équivalent de la valeur d'Enum
Est-il possible pour moi de convertir un String
à une valeur équivalente dans une Enumeration
, à l'aide de Java.
Je peux bien sûr le faire avec une grande if-else
déclaration, mais je voudrais éviter si possible.
Compte tenu de cette documentation:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html
Je ne suis pas trop d'espoir que c'est possible sans fi ou d'une instruction case.
Vous devez vous connecter pour publier un commentaire.
Espère que vous vous rendez compte,
java.util.Enumeration
est différent du Java 1.5 Enum types.Vous pouvez simplement utiliser
YourEnum.valueOf("String")
d'obtenir l'équivalent d'un type enum.Ainsi, si votre enum est défini de la manière suivante:
Vous pourriez faire ceci:
En supposant que vous utilisez Java 5 énumérations (ce qui n'est pas si sûr puisque vous parlez de vieux
Enumeration
classe), vous pouvez utiliser levalueOf
méthode dejava.lang.Enum
sous-classe:Utiliser la méthode statique
valueOf(String)
définis pour chaqueenum
.Par exemple, si vous avez
enum MyEnum
vous pouvez direMyEnum.valueOf("foo")
Peut que je l'ai conçu mon propre solution sans se rendre compte que
Type.valueOf("enum string")
réellement existé.Je suppose que c'est un contrôle plus granulaire, mais je ne suis pas sûr que c'est vraiment nécessaire.
Je suppose que vous êtes l'échange
IllegalArgumentException
pourRuntimeException
(ou autre exception que vous souhaitez jeter), ce qui pourrait nettoyer le code.