seguinte galera… vi alguns posts sobre enums, porém não consegui aplicar corretamente, funcionou em partes… vou explicar…
eu tenho uma classe em C q eu uso Enum mas mudou um pouco…
publicenumEstadoImpressora{// lista das enumsSEM_ESTADO(-2),OFFLINE(-1),WARNING(0),ONLINE(1),EM_USO(2);// construtor da enumEstadoImpressora(intv){setValor(v);}publicvoidsetValor(intv){valor=i;}publicintgetValor(){returnvalor;}privateintvalor;}
Como usar
EstadoImpressora ep = EstadoImpressora.SEM_ESTADO;
Como pegar o valor
ep.getValor();
Falow!
K
kubanacan
desculpa davidbuzatto pela minha burrice, mas eu nao enetdni…
tipo… a parte de EstadoImpressora.SEM_ESTADO; trank…
pq eu sei o status q eu quero…
sei usar…
o prblema é q no meu BD eu tenho o valor inteiro 1, e tenho q descobrir qual “ESTADO” ele pertence…
em C um cast funciona, ele sabe q o valor 1 do Bd é igual ao ONLINE,
o caminho inverso q preciso descobrir como faz, no meu select funcionou tranks. eu usei
String sql = "select * from imp where id = "+ EstadoImpressora.SEM_ESTADO+""
funcoi no final
select * from imp where id = 1
preciso do inverso… recebo o numero 1 e tenho q colocar no meu contrutor do Obejto q tem um tributo tipo EstadoImpressora.
vlw pela ajuda de vcs
[]´s
davidbuzatto
String sql = "select * from imp where id = "+ EstadoImpressora.SEM_ESTADO.getValor() + "";
É só chamar o método que obtém o valor que vc precisa, que no caso é getValor(), ele vai retornar -2 que é o valor associado a enum SEM_ESTADO.
Falow!
K
kubanacan
eu denovo :oops:
meu problema é aki! rssss eu tenho o numero 1 no BD to fzendo um
dá erro aki! ele pega um inteiro e precisa converter num estado entendeu?
vlw pelo Help brother!
[]´’s
T
thingol
importjava.util.*;enumNumeros{TEN(10),HUNDRED(100),THOUSAND(1000);privatefinalintvalor;// note que uma enum não deve mudar de valor!// portanto não deve haver um método "setValor".publicintgetValor(){returnvalor;}Numeros(intvalor){this.valor=valor;}publicstaticNumerosgetInstance(intv){switch(v){// este "switch" é reconhecidamente meio "porco". // Alguém pode mostrar uma solução melhor para este problema?case10:returnTEN;case100:returnHUNDRED;case1000:returnTHOUSAND;default:thrownewIllegalArgumentException("Solicitado um enum inexistente (valor = "+v+")");}}}classTesteEnum2{publicstaticvoidmain(String[]args){Numerosnum=Numeros.TEN;System.out.println(num.ordinal());// imprime 0System.out.println(num.getValor());// imprime 10num=Enum.valueOf(Numeros.class,"TEN");// deve retornar Numeros.TENSystem.out.println(num);// imprime TENnum=Numeros.getInstance(100);// deve retornar Numeros.HUNDREDSystem.out.println(num);// imprime HUNDREDnum=Numeros.getInstance(1);// deve lançar uma exceção}}
danieldestro
davidbuzatto:
...
public void setValor( int v ) {
valor = i;
}
}
Não vejo nenhum sentido em um Enun ter um setValor().
K
kubanacan
vlw galera pela ajuda!!
to usando o código do Thingol…
agradeço a todos!
[]´s
T
thingol
Notem que até existe um “Enum.valueOf”, mas ele é orientado para strings, não para o valor ordinal da enum. Isso é uma coisa legal que não existe no C++, por exemplo.