Existem muitas referências que sugerem um liberal use of final . A especificação da linguagem Java tem uma seção sobre variáveis finais . Várias regras em ferramentas de análise estática também suportam isso - PMD tem até um número de regras para detectar quando o final pode ser usado . As páginas que eu criei forneceram um número de pontos sobre o que final
faz e por que você deveria usá-lo liberalmente.
Para mim, o uso liberal de final
realizou duas coisas na maioria dos códigos, e essas provavelmente são as coisas que levaram o autor do seu exemplo de código a usá-lo:
-
Ele torna a intenção do código muito mais clara e leva ao código de autodocumentação. Usar
final
impede que o valor de um objeto primitivo seja alterado ou que um novo objeto seja feito e sobrescreve um objeto existente. Se não houver necessidade de alterar o valor de uma variável e alguém o fizer, o IDE e / ou o compilador fornecerão um aviso. O desenvolvedor deve corrigir o problema ou remover explicitamente o modificadorfinal
da variável. De qualquer forma, o pensamento é necessário para garantir que o resultado pretendido seja alcançado. -
Dependendo do seu código, ele serve como uma dica para o compilador potencializar as otimizações. Isso não tem nada a ver com o tempo de compilação, mas com o que o compilador pode fazer durante a compilação. Também não é garantido fazer nada. No entanto, sinalizar ao compilador que o valor dessa variável ou o objeto referido por essa variável nunca será alterado poderia permitir otimizações de desempenho.
Existem outras vantagens também, relacionadas à concorrência. Quando aplicado em nível de classe ou método, tem a ver com garantir o que pode ser substituído ou herdado. No entanto, eles estão além do escopo do seu exemplo de código. Mais uma vez, os artigos que eu criei foram muito mais detalhados sobre como você pode aplicar final
.
A única maneira de ter certeza do motivo pelo qual o autor do código decidiu usar final
é encontrar o autor e perguntar por si mesmo.