Exploration de l'expression Lambda équivalente pour System.out::println
Dans la programmation Java, les références de méthode offrent une syntaxe concise pour invoquer des méthodes. Un tel exemple est System.out::println, qui sert de raccourci pour faire référence à la méthode println de la classe System.out.
Cette référence de méthode nous permet d'écrire du code comme celui-ci :
numbers.forEach(System.out::println);
où la liste des numéros contient des entiers qui sont imprimés sur la console. Cependant, il existe une expression lambda correspondante qui réalise la même fonctionnalité.
Pour trouver cette expression lambda, nous devons comprendre comment fonctionnent les références de méthode. Lors de l'utilisation de System.out::println, l'évaluation initiale de System.out génère une instance de PrintStream, qui est stockée dans une expression lambda et utilisée pour invoquer println.
Traduisant directement ce concept en une expression lambda, nous obtenons ce qui suit :
numbers.forEach(o -> { PrintStream p = Objects.requireNonNull(System.out); p.println(o); });
Cette expression lambda récupère explicitement l'instance PrintStream et l'assigne à la variable p. L'espace réservé o représente chaque élément de la liste de nombres.
Il convient de noter que cette expression lambda est un équivalent exact de System.out::println, capturant l'instance System.out évaluée. Cependant, cette dernière référence de méthode a l'avantage d'être plus concise et lisible.
Ainsi, alors que l'expression lambda fournit une vue plus explicite de ce qui se passe sous le capot, la référence de méthode System.out::println reste un raccourci syntaxique précieux dans des scénarios comme celui illustré ci-dessus.
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!