ExpertiDict

Java · Essencial · Inglês · Técnico

final

/ˈfaɪnəl/palavra-chave

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 compila

Exemplos

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.

Veja também

Todos os termos de Java