Enum

7 respostas
R

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

7 Respostas

Rodrigo_Sasaki

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

R

Isso mesmo, dá pra fazer?

Rodrigo_Sasaki
Sim.
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;
	}
	
}
R

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?

Rodrigo_Sasaki

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

R

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

isso pelos exemplos que vi …

Rodrigo_Sasaki
rh_pestana:
Entendi.. é que tinha pensado em algo tipo: 1("TITULAR"), 2("FILHO")

isso pelos exemplos que vi ...

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:
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);
}
Mas como você pode ver, não é um código nada limpo hehehe
Criado 29 de maio de 2012
Ultima resposta 29 de mai. de 2012
Respostas 7
Participantes 2