Fala galera…
Tenho uma duvida na utilização do enum.
Gostaria de saber como seria a utilização desse tipo sendo recuperado o valor do banco de dados. …
por exemplo em uma tabela usuário nos temos um tipo sei la … funcionario, cliente certo com o valor 1,2 e no java na minha entidade usuário criei um tipo enumerado sendo funcionario e cliente tb com os valores FUNCIONARIO(1), CLIENTE(2) …
Recuperando os usuários da tabela e populando uma entidade como eu faria com o tipo, teria que fazer um loop no meu enum e um if ??? ou teria uma forma mais inteligente de utilização ???
obrigado.
Rodrigo
Bom, vamos lá.
Primeiro, o ideal seria você incluir no seu tipo enumerado, um método estático para a busca de acordo com o atributo no qual você quer fazer a busca. Algo como no exemplo abaixo:
public enum Coisas {
João(1), Maria(2), Jose(3);
private int id;
public int getId() {return this.id;}
Coisas(int valor) {this.id = valor;}
public static Coisas getCoisa(int id)
{
for (Coisas coisa : values())
if (coisa.getId() == id)
return coisa;
return null;
}
}
Na sua classe, aonde o tipo enumerado está definido, você pode criar métodos gets e sets virtuais. Algo como no exemplo abaixo:
public class Classe {
private Coisas coisa;
public int getIdCoisa() {return coisa == null ? -1 : coisa.getId();}
public void setCoisa(int valor) {this.coisa = Coisas.getCoisa(valor);}
}
Então, você não acessaria diretamente O tipo enumerado, mas sim os gets e sets “virtuais” que citei acima.
falando de enum…gostaria de tirar um duvida com os amigos…
o enum seria um structs no c/c++???
teria alguma relação e a galera da sun sentiu necessidade de esta copiando???
(acho que escrevi structs certo…)
vlw
Não.
O enum é completamente diferente dos structs do C/C++. Na realidade, é uma classe, só que com algumas limitações, como por exemplo com relação aos construtores.
Ao contrário do enum do C, que consiste apenas em um inteiro glorificado, o enum em Java é uma classe, e você pode definir atributos e comportamentos à ela.
Show de bola … vlw pela dica …
[]'s
Rodrigo