[Duvida] Alteração de variável [Resolvido]

3 respostas
gfkauer

Boa tarde, Estou gerando o relatório de PMD e corrigindo alguns pequenos itens apontados.

Surgiu-me a seguinte duvida, no relatório era sugerido que a váriavel form fosse transformada em [color=violeta]final[/color], porém a variavel recebe um set poucas linhas abaixo… mas o set não estaria alterando o valor da variável?

AssociacaoLocalizacaoForm form = getForm(); form.setLocalizacaoDisponiveis(new ArrayList<Localizacao>());

Agora não sei se posso transformar em final ou devo manter ela como esta ignorando a regra do PMD…

3 Respostas

Marky.Vasconcelos

Variaveis finais não indicam que não pode trabalhar com ela, a unica diferença é que ela não pode receber uma nova instancia.

final Cliente c = new Cliente();
c.setNome("X");
c = outroObjeto;//Erro
c = new Cliente();//Erro
E

“final” deixa a variável em si imutável, mas não o objeto (que no seu caso, através de um setter, é modificado).
Se a variável receber um novo objeto, então ela não pode ser final.
O PMD deve ter visto que a variável, em si, não recebe um novo objeto no decorrer da execução do método, por isso é que sugere o uso de “final”. OK?

gfkauer

Ok, obrigado.

Criado 26 de janeiro de 2010
Ultima resposta 26 de jan. de 2010
Respostas 3
Participantes 3