Heim >Java >javaLernprogramm >Was ist der Lambda-Ausdruck, der der System.out::println-Methodenreferenz entspricht?

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 06:26:02912Durchsuche

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);
}

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);
});

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!

Stellungnahme:
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