variável final de método , isso é bom?

4 respostas
J

é o seguinte:
eu instalei o plugin PMD no eclipse e fiz ele rodar sobre um arquivo meu e então fui ver o resultado. Na seguinte linha que está dentro de um método:

ValorVO valor = new ValorVO();

ele disse que :
Local variable could be declared final
qual é a necessidade disso?
é bom, é ruim, é aconselhavel?

4 Respostas

F

Cara, acho que é porque vc não atribui outro objeto a essa variável, ela permanece até o fim com o primeiro valor que lhe foi atribuído. Nesse caso, se ela fosse final, acho que o compilador poderia fazer algumas otimizações.

G

“java_na_veia”:
é o seguinte:
eu instalei o plugin PMD no eclipse e fiz ele rodar sobre um arquivo meu e então fui ver o resultado. Na seguinte linha que está dentro de um método:

ValorVO valor = new ValorVO();

ele disse que :
Local variable could be declared final
qual é a necessidade disso?
é bom, é ruim, é aconselhavel?

O PMD te dá essa dica porque é muito importante marcar variáveis de método com final, para que você evite que outras pessoas manipulem o coódigo da forma errada.

J

valew FredMP
se você estiver certo seria uma boa, você só acha isso ou tem algum embasamento?
falow

L

java_na_veia, sim, eu não tenho um link para te passar, mas pelo que sei, compiladores geralmente substituem o valor das constantes onde ela é usada no programa, isso evita carregar uma variavel na pilha de processamento e verificar o valor dela, pois ele ja sabe qual eh o valor.

Ex:
final int x = 9
Sysout(x)

Quando o compilador compilar isso, ele vai fazer algo como
Sysout(9)
dentro do codigo compilado, isso eh de certa forma mais rapido que se ele fizer
Sysout(x)

No caso de objetos, imagino que ele substitui pela referencia direta que ele vai ter na memoria, ja que variaveis (de objetos) nada mais guardam que uma referencia para uma posicao de memoria, esse valor (referencia) sera substituido ja direto onde a variavel final eh usada ao inves de carregar e verificar qual eh o valor (referencia) que ela esta guardando.

Bem, falei tudo isso não porque ja li muito sobre as variaveis final do java ehehe mais por ja ter estudando compiladores (faz tempo), e a maioria dos compiladores fazem essa otimização, java não seria diferente acho :stuck_out_tongue: . Com certeza alguem que conhece a linguagem java mais que eu pode te dizer melhor o que ele faz e como ele otimiza :wink:

valeu!

Criado 11 de outubro de 2006
Ultima resposta 13 de out. de 2006
Respostas 4
Participantes 4