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 forma concisa de representar funções anónimas (funções sem nome). São usadas para criar instâncias de interfaces funcionais.

Componentes principais:

  • Lista de parâmetros: Os parênteses () contêm a lista de parâmetros. Se não houver parâmetros, usa-se parênteses vazios.
  • Flecha ->: Separa a lista de parâmetros do corpo da expressão lambda.
  • Corpo: Pode ser uma única expressão ou um bloco de código entre chaves {}.

Exemplo sem parâmetros:

// Interface funcional
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Uso da expressão lambda
Greeting greeting = () -> System.out.println("Hello, World!");

Exemplo com parâmetros:

// Interface funcional
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Uso da expressão lambda
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Vantagens:

  • Concisão: Reduz o volume de código boilerplate.
  • Conforto: Uso em conjunto com a API Stream para processamento de coleções.
  • Programação funcional: Suporte a elementos de programação funcional em Java.

Limitações:

  • Só podem ser usadas com interfaces funcionais (interfaces com um único método abstrato).
  • Não podem ter estado (ou seja, não podem modificar variáveis fora do seu contexto, se essas variáveis não forem explicitamente declaradas como final ou efetivamente final).

As expressões lambda foram introduzidas no Java 8.