Czy mogę przekonwertować a String
na równoważną wartość w pliku Enumeration
, używając języka Java.
Oczywiście mogę to zrobić za pomocą dużego if-else
oświadczenia, ale chciałbym tego uniknąć, jeśli to możliwe.
Biorąc pod uwagę tę dokumentację:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html
Nie mam nadziei, że jest to możliwe bez „ifs” lub oświadczenia.
Zakładając, że używasz wyliczeń Java 5 (co nie jest takie pewne, ponieważ wspomniałeś o starej
Enumeration
klasie), możesz użyćvalueOf
metodyjava.lang.Enum
podklasy:źródło
Użyj metody statycznej
valueOf(String)
zdefiniowanej dla każdegoenum
.Na przykład, jeśli masz
enum MyEnum
, możesz powiedziećMyEnum.valueOf("foo")
źródło
Mogłem przeprojektować własne rozwiązanie, nie zdając sobie sprawy, że
Type.valueOf("enum string")
faktycznie istniało.Myślę, że daje to bardziej szczegółową kontrolę, ale nie jestem pewien, czy jest to naprawdę konieczne.
Myślę, że wymieniasz się
IllegalArgumentException
naRuntimeException
(lub jakikolwiek wyjątek, który chcesz rzucić), który może potencjalnie oczyścić kod.źródło