Rafael_Nunes
Por que a sua enum chama ‘X_11’ e não ‘SP’?
ViniGodoy
Em OO você tem diversas alternativas melhores do que montar um switch:
1. Crie um método estático chamado porSigla, e faça ele retornar o seu enum:
public enum TEstado {
SP("SP"),
X_11("RO");
private String sigla;
private TEstado(String sigla) {this.sigla = sigla;}
public static String porSigla(String sigla) {
for (TEstado estado : TEstado.values())
if (estado.sigla.equals(sigla))
return estado;
throw new IllegalArgumentException("Sigla inexistente!");
}
}
Aí vc usa assim:
TEstado estado = TEstado.porSigla("RO");
2. Se precisar realmente de performance, crie um mapa:
private Map<String, TEstado> siglaParaEstado = new HashMap<String, Estado>();
public void carregarMapa() {
for (TEstado estado : TEstado.values()) {
siglaParaEstado.put(estado.toString(), estado);
}
}
public TEstado estadoPelaSigla(String sigla) {
return siglaParaEstado.get(sigla);
}