Sobes.tech
Middle

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. Permite tratar a funcionalidade como um argumento de método ou como código como dados.

Características principais:

  • Anónima: Não tem nome.
  • Interface funcional: A expressão lambda está sempre relacionada com uma interface funcional (interface com um único método abstrato).
  • Sintaxe: (parâmetros) -> { corpo }

Exemplo de uso com a interface funcional Consumer:

import java.util.function.Consumer;

// A interface funcional Consumer<T> tem um método abstrato accept(T t)
Consumer<String> saudacao = (nome) -> {
    System.out.println("Olá, " + nome);
};

saudacao.accept("Mundo"); // Saída: Olá, Mundo

Exemplo de uso com a interface Runnable:

// A interface Runnable tem um método abstrato run()
Runnable tarefa = () -> {
    System.out.println("A tarefa está a ser executada numa thread separada");
};

new Thread(tarefa).start(); // Inicia a tarefa numa nova thread

Variações de sintaxe:

  • Sem parâmetros: () -> { System.out.println("Olá"); }
  • Um parâmetro sem parênteses: nome -> System.out.println("Olá, " + nome)
  • Vários parâmetros com parênteses e tipos: (int a, int b) -> { return a + b; }
  • Vários parâmetros sem tipos (inferência de tipos): (a, b) -> a + b
  • Corpo de uma linha sem return: (a, b) -> a + b
  • Corpo de várias linhas com chaves e return (se necessário): (a, b) -> { int soma = a + b; return soma; }

As expressões lambda tornam o código mais compacto, legível e permitem usar programação funcional em Java.