Enumeration valueOf

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

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);
    }
}

vlw galera