Introduzidas no JDK 8.
Aumentaram o poder de expressão da linguagem Java.
Adicionaram novos elementos de sintaxe e otimizaram estruturas comuns.
Comparação: assim como os genéricos remodelaram Java no passado, as expressões lambda estão remodelando hoje.
Expressões lambda introduzem um estilo mais conciso e expressivo de programação.
Promovem uma programação mais funcional.
Expressão Lambda:
Método anônimo (sem nome).
Não é executado isoladamente; implementa métodos de uma interface funcional.
Equivalente a uma forma de classe anônima.
Lambdas também conhecida como closure (capturam variáveis de seu escopo).
Interface Funcional:
Contém apenas um método abstrato.
Representa uma única ação ou finalidade.
Exemplo: Runnable com o método run().
Define o tipo de destino de uma expressão lambda.
Também chamada de tipo SAM (Single Abstract Method).
Regras e Observações
Uma expressão lambda só pode ser usada em contextos com um tipo de destino especificado.
O tipo de destino é o tipo esperado para a expressão lambda, e ele precisa ser compatível com o tipo do método abstrato da interface funcional
As interfaces funcionais podem incluir métodos públicos de
Object
(comoequals()
) sem perder seu status de interface funcional. Esses métodos são considerados implicitamente implementados.
Top comments (0)