É possível para mim converter a String
em um valor equivalente em um Enumeration
, usando Java.
Claro que posso fazer isso com uma if-else
instrução grande , mas gostaria de evitar isso, se possível.
Dada esta documentação:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html
Não tenho muita esperança de que isso seja possível sem ifs ou uma declaração de caso.
Supondo que você use enums Java 5 (o que não é tão certo, já que você mencionou a
Enumeration
classe antiga ), você pode usar ovalueOf
método dajava.lang.Enum
subclasse:fonte
Use o método estático
valueOf(String)
definido para cada umenum
.Por exemplo, se você tem,
enum MyEnum
pode dizerMyEnum.valueOf("foo")
fonte
Eu posso ter super-projetado minha própria solução sem perceber que ela
Type.valueOf("enum string")
realmente existia.Acho que dá um controle mais granular, mas não tenho certeza se é realmente necessário.
Eu acho que você está trocando
IllegalArgumentException
porRuntimeException
(ou qualquer exceção que você deseja lançar) que poderia potencialmente limpar o código.fonte