Могу ли я преобразовать a String
в эквивалентное значение в Enumeration
, используя Java.
Я, конечно, могу сделать это с большим if-else
заявлением, но по возможности я бы хотел этого избежать.
Учитывая эту документацию:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html
Я не очень надеюсь, что это возможно без ifs или case.
Предполагая, что вы используете перечисления Java 5 (что не так очевидно, поскольку вы упоминаете старый
Enumeration
класс), вы можете использоватьvalueOf
методjava.lang.Enum
подкласса:источник
Используйте статический метод,
valueOf(String)
определенный для каждогоenum
.Например, если у вас есть,
enum MyEnum
вы можете сказатьMyEnum.valueOf("foo")
источник
Я мог перестроить свое собственное решение, не осознавая, что оно
Type.valueOf("enum string")
действительно существует.Я предполагаю, что это дает более детальный контроль, но я не уверен, что это действительно необходимо.
Я думаю , вы обмен
IllegalArgumentException
наRuntimeException
(или что - то исключение вы хотите бросить) , которые потенциально могли бы чистый код вверх.источник