Tenho uma dúvida quanto a Constantes, me desculpem se este tópico não cabe a este forum
Normalmente as constantes são declaradas como static, logo minhas dúvidas são:
Está é uma boa prática, ou somente se declara uma Constante static se eu desejo que tudo que a acessa vai ser static?
Alguns acessos a Constantes são feitos por meio static, como por exemplo “new Integer[]{BlackCadastro.PROHIBITED}” e preciso acessar esta Constante por meio não static tb como por exemplo “bc.setTipo(bc.PROHIBITED);”. Existe uma forma mais correta para resolver este problema? Ou tenho que ignorar os Warnings???
Tenho uma dúvida quanto a Constantes, me desculpem se este tópico não cabe a este forum
É claro que cabe, na verdade é pra isso que este fórum serve.
Constantes são declaradas com final static sempre. Essa é a boa prática. (Embora James Gosling tivesse reservado a palavra “const” ele logo viu que “final static” fazia 35% do que ele queria e “final” sozinho fazia outros 60%, então nem chegou a implementar o “const” no Java (os outros 5% são sutilezas do C++ que foram deixadas de lado).
Se você for ver o histórico da linguagem, certas coisas que o Gosling queria implementar, como “generics”, só puderam ser implementadas há pouco tempo atrás - tudo isso por falta de tempo…)
Aham, se você tem de usar “bc.PROHIBITED”, vai ter dois problemas:
o warning em si,
e
se bc for null, vai ocorrer um erro de execução (por incrível que pareça, já que você sabe que bc.PROHIBITED deveria ser equivalente a BlackCadastro.PROHIBITED). Esse erro ocorreria no Java 1.4 e posterior.
kuchma
Existe algum problema em utilizar:
bc.setTipo(BlackCadastro.PROHIBITED);
?
Marcio Kuchma
r_linux
Não… percebi isso depois da explicação do nosso amigo
Se eu usar “bc.setTipo(BlackCadastro.PROHIBITED);” eu Não tenho o Warning… foi mesmo uma mancada minha.