Ola, eu to com uma duvida com enumeration… eu tenho a seguinte enum:
public enum SituacaoDebitoRetorno {
DEBITO_EM_ABERTO(1), DEBITO_DIVIDA_ATIVA(7), DEBITO_REPRESENTADO(19),
DEBITO_CANCELADO(39), DEBITO_QUITADO_IPVA(41), DEBITO_PARCELADO_IPVA(42),
DEBITO_PARCELADO_DIA_IPVA(43), DEBITO_PARCELADO_EM_ATARASO(44),
DEBITO_BLOQUEIO_PARCELAMENTO(45);
private Integer tipoSituacao;
SituacaoDebitoRetorno(Integer tipoSituacao) {
this.tipoSituacao = tipoSituacao;
}
public int getTipoSituacao() {
return this.tipoSituacao;
}
}
eu gostaria de saber se tem como utilizar o metodo valueOf passando como parametro o tipoSituacao
vlw
_fs
#2
Você pode implementar um método “fromTipo” que faz isso para você na própria enum.
Por exemplo:
[code]
public static SituacaoDebitoRetorno fromTipo(int tipo) {
for (SituacaoDebitoRetorno s : values())
if(s.tipoSituacao == tipo)
return s;
return null;
}[/code]
É melhor usar uma cache neste método para evitar uma busca sequencial. Dá para fazer assim:
class Mapeamento {
static final Map<Integer, SituacaoDebitoRetorno> fromValue =
Collections.synchronizedMap(new HashMap<Integer, SituacaoDebitoRetorno>());
}
public enum SituacaoDebitoRetorno {
DEBITO_EM_ABERTO(1), DEBITO_DIVIDA_ATIVA(7), DEBITO_REPRESENTADO(19),
DEBITO_CANCELADO(39), DEBITO_QUITADO_IPVA(41), DEBITO_PARCELADO_IPVA(42),
DEBITO_PARCELADO_DIA_IPVA(43), DEBITO_PARCELADO_EM_ATARASO(44),
DEBITO_BLOQUEIO_PARCELAMENTO(45);
private int tipoSituacao; // int, não Integer!
private SituacaoDebitoRetorno(int tipoSituacao) {
this.tipoSituacao = tipoSituacao;
Mapeamento.fromValue.put(tipoSituacao, this);
}
public int getTipoSituacao() {
return this.tipoSituacao;
}
public static SituacaoDebitoRetorno valueOf(int tipoSituacao) {
return Mapeamento.fromValue.get(tipoSituacao);
}
}