As expressões lambda permitem escrever funções anônimas (sem nome) de forma concisa, sendo usadas principalmente para implementar interfaces funcionais — interfaces com apenas um método abstrato.
💡 Lambdas tornam o código mais simples, direto e compatível com o estilo funcional introduzido no Java 8.
Uma interface funcional define um único comportamento, que pode ser representado por uma lambda.
@FunctionalInterface
public interface Acao {
int executar(int valor);
}
📌 No tema ninja (leve): a interface é como um “estilo de técnica”, e o método representa a execução da habilidade.
Antes do Java 8, seria assim:
Acao multiplicar = new Acao() {
@Override
public int executar(int valor) {
return valor * 2;
}
};
🔸 Funciona, mas é verboso, repetitivo e pouco elegante.
Acao multiplicar = v -> v * 2;
✔ Sem nome de classe
✔ Sem boilerplate
✔ Código mais limpo e expressivo
(parâmetros) -> expressão
(parâmetros) -> { bloco de código }