Constantes

3 respostas
r_linux

Tenho uma dúvida quanto a Constantes, me desculpem se este tópico não cabe a este forum :slight_smile:

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???

Grato pela força :slight_smile:

3 Respostas

T

r_linux:
Tenho uma dúvida quanto a Constantes, me desculpem se este tópico não cabe a este forum :slight_smile:

É 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 :slight_smile:

Se eu usar “bc.setTipo(BlackCadastro.PROHIBITED);” eu Não tenho o Warning… foi mesmo uma mancada minha.

Obrigado pela ajuda :slight_smile:

Criado 15 de dezembro de 2004
Ultima resposta 15 de dez. de 2004
Respostas 3
Participantes 3