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)