De classes anônimas para lambdas e referências de método
Substitua classes anônimas de método único por lambdas e referências de método concisas.
Comparação de Código
✕ Anonymous class
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
save(event);
}
});
✓ Java 8+
button.addActionListener(this::save);
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Menos boilerplate
Elimina a declaração da classe e a cerimônia da sobrescrita.
Melhor legibilidade
Mantém o foco na operação realizada.
Mantém a segurança de tipos
O compilador verifica a assinatura da interface funcional de destino.
Abordagem Antiga
Classe anônima
Abordagem Moderna
Referência de método
Desde o JDK
8
Dificuldade
Iniciante
Suporte JDK
De classes anônimas para lambdas e referências de método
Disponível
Disponível desde o JDK 8 (março de 2014).
Como funciona
Interfaces funcionais podem ser implementadas com lambdas ou referências de método. Isso elimina a cerimônia das classes anônimas, mantendo a tipagem estática e o mesmo contrato de callback.
Documentação Relacionada
Prova