Mas como eu poderia fazer isso, passando a string como argumento ?
Do modo acima, a String sERROR pr exemplo, está inserida na instrução, textualmente.
Mas eu queria algo tipo :
INDICE=FUNCAO_INDICE(sERRO);
Tem como fazer assim ?
+++
A
AbelBueno
Para transformar String em enum, você pode utilizar o método estático valueOf da enum.
Evitar usar o método ordinal() para associar cada enum a um indíce.
Se a ordem da enum é alterada, seu programa pode parar de funcionar.
Dê uma olhada no livro Effective Java 2nd Edition e veja formas melhores de fazer isso.
publicclassMenssagem{staticenumMensagemEnum{WARNING(1,"Warnig!"),ERROR(2,"Error!");privateintcodigo;privateStringmensagem;privateMensagemEnum(intcodigo,Stringmensagem){this.codigo=codigo;this.mensagem=mensagem;}staticMensagemEnumfind(intcodigo){for(MensagemEnumme:MensagemEnum.values()){if(me.codigo==codigo){returnme;}}thrownewIllegalArgumentException("Mensagem de código "+codigo+" não encontrada");}publicintgetCodigo(){returncodigo;}publicStringgetMensagem(){returnmensagem;}}publicstaticvoidmain(String[]args){System.out.println(MensagemEnum.WARNING.getMensagem());System.out.println(MensagemEnum.WARNING.getCodigo());System.out.println(MensagemEnum.find(2).getMensagem());}}
seja criativo e adapte o exemplo.
andre_teprom
pessoal,
Por estar apanhando um bocado, mudei a estrutura do programa e parti pra solução mais simples, convertendo o tipo enum em String[].
Agora uso apenas o método lengh e um while e fica tudo resolvido.
Obrigado pelas dicas.
+++
heroijapa
A Pattern de enum em string tem alguns erros, como a possibilidade de se adicionar acidentalmente 2 valores iguais ao array, fora isso não vejo grilo.