Enum

Boa tarde,

Vi alguns tópicos falando sobre enum, mas ainda assim tenho uma dúvida qto a utilização… seguinte, tenho um campo em uma tabela do campo que pode ter os valores:
1 para conjuge, 2 para companheiro, 3 para filhos… e assim vai.

Minha dúvida é, consigo trabalhar com um enum em minha aplicação para que imprima a descrição a partir do valor do campo?

Para Sexo consegui fazer, F(“Feminino”) M(“Masculino”)… mas no meu caso seria um uso inverso dos exemplos que consegui na net…

Abraços

quer algo assim?CONJUGE(1, "Conjuge"), COMPANHEIRO(2, "Companheiro"), FILHOS(3, "Filhos");

Isso mesmo, dá pra fazer?

Sim.[code]public enum EnumTeste{

CONJUGE(1, "Conjuge"),
COMPANHEIRO(2, "Companheiro"),
FILHOS(3, "Filhos");

private int codigo;
private String descricao;

private EnumTeste(int codigo, String descricao){
	this.codigo = codigo;
	this.descricao = descricao;
}

public int getCodigo(){
	return codigo;
}

public void setCodigo(int codigo){
	this.codigo = codigo;
}

public String getDescricao(){
	return descricao;
}

public void setDescricao(String descricao){
	this.descricao = descricao;
}

}[/code]

Vou testar, é o que eu quero… só não entendi, como o java vai enteder qdo recerber o “1” por exemplo que está na tabela do banco de dados que é um “conjuge”. Teria que ter um construtor só com o número tb?

você pode comprarar. if(codigoQueEuPegueiDoBanco.equals(EnumTeste.FILHOS.getCodigo())pode fazer um switch pelo Enum também

Entendi… é que tinha pensado em algo tipo: 1(“TITULAR”), 2(“FILHO”)

isso pelos exemplos que vi …

[quote=rh_pestana]Entendi… é que tinha pensado em algo tipo: 1(“TITULAR”), 2(“FILHO”)

isso pelos exemplos que vi … [/quote]

Ah, entendi o que você quer. Acho que você não tem como dar um nome que começa com um número.
mas pode concatenar fazendo alguma gambiarra hehehe.

EDIT:a gambiarra que eu quis dizer era algo assim:

Enum:COD1("Conjuge"), COD2("Companheiro"), COD3("Filhos");e na hora que quiser buscar fazer assim:[code]public static void main(String[] args){
EnumTeste meuEnum = buscarNoEnumTeste(3);
System.out.println(meuEnum.getDescricao());
}

public static EnumTeste buscarNoEnumTeste(int valor){
String nome = “COD” + valor;
return EnumTeste.valueOf(nome);
}[/code] Mas como você pode ver, não é um código nada limpo hehehe