mtitek
  • Cloud
  • Big Data
  • CI
  • Install
  • Samples
  • Java
  • Ubuntu
  • Maven
  • Archive
Java | Expressions Lambda
  1. Expressions Lambda
  2. Utilisation des expressions lambda avec les collections

  1. Expressions Lambda
    Une expression lambda permet de définir un block de code qui peut être assigné à une référence d'une méthode.

    Une expression lambda peut être utilisée dans plusieurs context:
    • Initialiser une variable ou un tableau.

    • Arguments de méthodes ou de constructeurs

    • Valeur de retour de méthodes

    • Expression conditionnelle "?:"

    La syntaxe d'une expression lambda est comme suit: paramètres -> implémentation
    • Les paramètres définissent les variables qui vont être utilisées comme argument lors de l'execution de l'expression lambda.
      Il n'est pas nécessaire de specifier le type des paramètres lorsque le compilateur peut en inférer le type dépendamment du context d'utilisation de l'expression lambda.
      Il est possible de définir une expression lambda qui n'accepte pas de paramètres.

      Exemples:
      • types explicites : (Integer i, Integer j) -> i + j;
      • types inférés : (i, j) -> i + j;
      • pas de paramètres : () -> Math.random();

    • L'implementation définit une expression ou un bloc d'instructions.

      Exemples:
      • expression : (String s) -> s.toUpercase();
      • bloc d'instructions : (String s) -> { return s.toUpercase(); }

    • L’expression lambda peut retourner une valeur dont le type est inféré automatiquement par le compilateur.

      Exemples:
      • expression : () -> "hello!";
      • bloc d'instructions : () -> { return "hello!"; }
      • aucune valeur retournée : () -> System.out.println("Hello!");

    L'implementation d'une expression lambda est similaire au code habituelle (bloc d'instructions) qu'on écrit pour implementer des méthodes.
    Cependant quelques restrictions sont à respecter, comme l'incapacité d'écrire des instructions continue/break à moins que ca soit à l'intérieur d'une boucle.
    Aussi il n'est pas possible de lancer des exceptions vérifiées par le compilateur (checked exceptions).

    Le code d’une expression lambda peut référencer des variables locales ansi que des variables d’instances et des variables de classe (statique).
    Typiquement la variable local doit être déclarée avec le modificateur final mais ce n’est pas une nécessité tant que la variable est implicitement utilisée comme une variable finale.

    Les expressions lambda peuvent être assignées à des références des interfaces declarant une seule méthode.
    Exemple :
  2. Utilisation des expressions lambda avec les collections
    • forEach
      L'interface java.lang.Iterable définit une implementation par défaut de la méthode forEach.

      La méthode forEach définit un paramètre de type Consumer (interface fonctionnelle) qui permet d'appliquer une action spécifique sur chaque élément d'une collection.
      L'interface java.util.Collection étend l'interface Iterable et donc la méthode forEach est disponible pour toute les implementations de l'interface Collection.

      Exemple:
© 2020  mtitek