Heim > Java > javaLernprogramm > Hauptteil

Was ist der Lambda-Ausdruck, der der System.out::println-Methodenreferenz entspricht?

Linda Hamilton
Freigeben: 2024-11-04 06:26:02
Original
842 Leute haben es durchsucht

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

Äquivalenz der System.out::println-Methodenreferenz im Lambda-Ausdruck

In Java ermöglicht die Methodenreferenz System.out::println für eine prägnante Möglichkeit, auf die Methode System.out.println() zu verweisen. Es wertet System.out aus und weist es einer Variablen zu.

Frage:

Was ist der entsprechende Lambda-Ausdruck für System.out::println, der das gleiche Verhalten liefert? ?

Antwort:

Ein exakt äquivalenter Lambda-Ausdruck wäre:

num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
}
Nach dem Login kopieren

Dieser Lambda-Ausdruck erfasst den Verweis auf System.out im Variable p, bevor Sie die println-Methode ausführen. Dadurch wird verhindert, dass Änderungen an System.out das Verhalten des Lambda-Ausdrucks beeinflussen.

Unterschied zum einfachen Lambda-Ausdruck:

Ein einfacherer Lambda-Ausdruck wie num -> System.out.println(num) wertet System.out bei jedem Aufruf aus und macht es somit anfällig für Änderungen in System.out, während das Lambda ausgeführt wird.

Verwendung:

Der entsprechende Lambda-Ausdruck kann auf die gleiche Weise wie System.out::println verwendet werden, wie zum Beispiel:

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);
});
Nach dem Login kopieren

Dieser Code gibt die Zahlen in der Liste auf der Konsole aus.

Das obige ist der detaillierte Inhalt vonWas ist der Lambda-Ausdruck, der der System.out::println-Methodenreferenz entspricht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage