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 ArrayList
c’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