Junior
O que são expressões lambda em Java?
sobes.tech IA
Resposta da IA
A expressão lambda em Java é uma função anónima (sem nome) que implementa uma interface funcional.
Características principais:
- Não têm nome.
- Podem ter parâmetros.
- O corpo pode consistir numa única expressão ou num bloco de instruções.
- O tipo de valor de retorno não é especificado (é inferido automaticamente).
- São necessárias para programação funcional e trabalho com fluxos (Streams API).
Sintaxe:
// Sem parâmetros
() -> { // corpo }
// Com um parâmetro (o tipo pode ser omitido)
param -> expressão
// Com vários parâmetros (o tipo pode ser omitido, são necessárias parênteses)
(param1, param2) -> { // corpo }
Exemplo de uso:
// Interface funcional (integrada)
import java.util.function.Consumer;
// Implementação com lambda
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Olá mundo!");
// Uso em um método que aceita uma interface funcional
import java.util.Arrays;
import java.util.List;
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach aceita um Consumer
Vantagens:
- Código mais conciso.
- Melhor legibilidade (em casos simples).
- Possibilidade de usar programação funcional.
- Simplificação do trabalho com coleções e multithreading.
Limitações:
- Lambdas aninhados ou longos podem ser difíceis de entender.
- Não têm estado (não podem ter campos de instância).