Como acessar o nome de uma constante declarada da seguinte forma: public static final int START = 0;
5 respostas
C
cristiano1039
Olá,
estou usando Netbeans IDE 6.1 e JDK 1.5.0-14, no Debian Etch.
No meu código faço uma declaração da seguinte maneira:
public static final int START = 0;
Significa que a constante START vai receber o valor 0.
Como eu faço para escrever na tela o nome da constane cujo valor é 0? Ou seja eu quero passar o 0 como parâmetro e receber o START, como resposta.
Não quero usar if, pois existem muitas declaraçoes deste tipo(public static final int ALGUMA_COISA = ALGUM_VALOR;), precisaria construir uma estrutura if bem grande.
vc não foi o primeiro a dizer que a dúvida era estranha, hehehe. Não tinha pensado no switch. Vou ficar com a sua sujestão.
Valeu
C
cristiano1039
blz pessoal,
to implementando a sugestão do Felagund aqui mas me deparo com o seguinte problema: Imaginem que eu tenho 10 mil declarações de constantes, da forma:
public static final int ALGUMA_COISA = ALGUM_VALOR;
de acordo com a sujestão do Felagund eu teria que fazer um switch com 10 mil itens. E se eu alterar algumas das declarações de constantes, tenho ir lá no switch e alterar tb, tudo manual…
Eu queria algo como um switch vinculado as declarações de constantes. De tal forma que se eu mexece nas declarações de constantes eu não precisasse alterar no switch tb.
Alguem ae manja isso?
renatocustodio
Desse jeito que está querendo só mesmo usando uma reflection, e pode ser um pouco complicado se vc já não souber algo de reflection.
Mas tipo, vc precisa mesmo de algo assim? Para que exatamente é isso aí? Já pensou em vez de usar constantes usar enum?
T
thingol
Se você souber o nome da classe onde a constante é declarada, você pode tentar reflection. Mas o correto, se pensarmos bem, é usarmos enum, não esse tipo de definição. Com enum é possível, dado o ordinal, obter a constante.