Maison > Java > javaDidacticiel > Quelle est l'expression lambda équivalente à la référence de la méthode System.out::println ?

Quelle est l'expression lambda équivalente à la référence de la méthode System.out::println ?

Linda Hamilton
Libérer: 2024-11-04 06:26:02
original
899 Les gens l'ont consulté

What is the lambda expression equivalent to the System.out::println method reference?

É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);
}
Copier après la connexion

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 :

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
numbers.forEach(num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal