Sobes.tech
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).