Sobes.tech
Junior

Qu'est-ce que les expressions lambda en Java?

sobes.tech IA

Réponse de l'IA

Une expression lambda en Java est une fonction anonyme (sans nom) qui implémente une interface fonctionnelle.

Caractéristiques principales :

  • N'ont pas de nom.
  • Peuvent avoir des paramètres.
  • Le corps peut consister en une seule expression ou un bloc d'instructions.
  • Le type de valeur de retour n'est pas spécifié (il est inféré automatiquement).
  • Nécessaires pour la programmation fonctionnelle et le travail avec les flux (Streams API).

Syntaxe :

// Sans paramètres
() -> { // corps }

// Avec un paramètre (le type peut être omis)
param -> expression

// Avec plusieurs paramètres (le type peut être omis, des parenthèses sont nécessaires)
(param1, param2) -> { // corps }

Exemple d'utilisation :

// Interface fonctionnelle (intégrée)
import java.util.function.Consumer;

// Implémentation avec lambda
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Bonjour le monde!");

// Utilisation dans une méthode qui accepte une interface fonctionnelle
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 accepte un Consumer

Avantages :

  • Code plus concis.
  • Meilleure lisibilité (dans les cas simples).
  • Possibilité d'utiliser la programmation fonctionnelle.
  • Simplification du travail avec les collections et le multithreading.

Limitations :

  • Les lambdas imbriqués ou longs peuvent être difficiles à comprendre.
  • N'ont pas d'état (ne peuvent pas avoir de champs d'instance).