Équivalence de la référence de méthode System.out::println dans l'expression Lambda
En Java, la référence de méthode System.out::println permet pour une manière concise de faire référence à la méthode System.out.println(). Il évalue System.out et l'attribue à une variable.
Question :
Quelle est l'expression lambda correspondante pour System.out::println qui fournit le même comportement ?
Réponse :
Une expression lambda équivalente exacte serait be:
num -> { PrintStream p = Objects.requireNonNull(System.out); p.println(num); }
Cette expression lambda capture la référence à System.out dans la variable p avant d'exécuter la méthode println. Cela empêche toute modification apportée à System.out d'affecter le comportement de l'expression lambda.
Différence par rapport à l'expression lambda simple :
Une expression lambda plus simple comme num -> System.out.println(num) évaluerait System.out à chaque fois qu'il est appelé, le rendant susceptible aux modifications de System.out pendant l'exécution du lambda.
Utilisation :
L'expression lambda équivalente peut être utilisée de la même manière que System.out::println, telle que :
Listnumbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); numbers.forEach(num -> { PrintStream p = Objects.requireNonNull(System.out); p.println(num); });
This le code imprimera les numéros de la liste sur la console.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!