Java · Essencial · Inglês · Técnico
final
Modificador que impede mudança. Em variável, proíbe nova atribuição; em método, proíbe sobrescrita; em classe, proíbe herança.
Onde usar
Em review: 'marque como final tudo que não muda'. Também aparece em lambdas, que só capturam variáveis finais ou efetivamente finais.
Em código
final List<String> nomes = new ArrayList<>();
nomes.add("Ana"); // permitido
nomes = new ArrayList<>(); // não compilaExemplos
Mark the field final so it can't be reassigned.
Marque o campo como final para que não seja reatribuído.
The lambda only captures effectively final variables.
A lambda só captura variáveis efetivamente finais.
Cuidado
final em referência não torna o objeto imutável: o ArrayList final ainda aceita add; só a variável não pode apontar para outro objeto.