Java Tutorial

Expressions Java Lambda


Expressions Java Lambda

Les expressions Lambda ont été ajoutées dans Java 8.

Une expression lambda est un court bloc de code qui prend des paramètres et renvoie une valeur. Les expressions lambda sont similaires aux méthodes, mais elles n’ont pas besoin de nom et peuvent être implémentées directement dans le corps d’une méthode.


Syntaxe

L’expression lambda la plus simple contient un seul paramètre et une expression :

Pour utiliser plusieurs paramètres, placez-les entre parenthèses :

(parameter1, parameter2) -> expression

Les expressions sont limitées. Ils doivent renvoyer immédiatement une valeur et ne peuvent pas contenir de variables, d’affectations ou d’instructions telles que if ou for. Afin d’effectuer des opérations plus complexes, un bloc de code peut être utilisé avec des accolades. Si l’expression lambda doit renvoyer une valeur, le bloc de code doit avoir une return déclaration.

(parameter1, parameter2) -> { code block }


Utilisation d’expressions Lambda

Les expressions lambda sont généralement transmises en tant que paramètres à une fonction :

Exemple

Utilisez une expression lambda dans le ArrayListc’est forEach() méthode pour imprimer chaque élément de la liste :

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

Essayez-le vous-même »

Les expressions lambda peuvent être stockées dans des variables si le type de la variable est une interface qui n’a qu’une seule méthode. L’expression lambda doit avoir le même nombre de paramètres et le même type de retour que cette méthode. Java intègre bon nombre de ces types d’interfaces, telles que Consumer interface (trouvé dans le java.util package) utilisé par les listes.

Exemple

Utilisez Java Consumer interface pour stocker une expression lambda dans une variable :

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

Essayez-le vous-même »

Pour utiliser une expression lambda dans une méthode, la méthode doit avoir un paramètre avec une interface à méthode unique comme type. L’appel de la méthode de l’interface exécutera l’expression lambda :

Exemple

Créez une méthode qui prend une expression lambda en paramètre :

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}

Essayez-le vous-même »

#Expressions #Java #Lambda

Articles similaires

Voir Aussi
Fermer
Bouton retour en haut de la page