Heim >Java >javaLernprogramm >Was ist der entsprechende Lambda-Ausdruck für „System.out::println' in Java?

Was ist der entsprechende Lambda-Ausdruck für „System.out::println' in Java?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 03:26:031134Durchsuche

What is the equivalent lambda expression for `System.out::println` in Java?

Untersuchen des äquivalenten Lambda-Ausdrucks für System.out::println

In der Java-Programmierung bieten Methodenreferenzen eine prägnante Syntax zum Aufrufen von Methoden. Ein solches Beispiel ist System.out::println, das als Abkürzung für den Verweis auf die println-Methode der System.out-Klasse dient.

Diese Methodenreferenz ermöglicht es uns, Code wie diesen zu schreiben:

numbers.forEach(System.out::println);

wobei die Zahlenliste Ganzzahlen enthält, die auf der Konsole ausgegeben werden. Es gibt jedoch einen entsprechenden Lambda-Ausdruck, der die gleiche Funktionalität erreicht.

Um diesen Lambda-Ausdruck zu finden, müssen wir verstehen, wie Methodenreferenzen funktionieren. Bei Verwendung von System.out::println ergibt die anfängliche Auswertung von System.out eine Instanz von PrintStream, die in einem Lambda-Ausdruck gespeichert und zum Aufrufen von println verwendet wird.

Dieses Konzept direkt in einen Lambda-Ausdruck übersetzen, wir erhalten Folgendes:

numbers.forEach(o -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(o);
});

Dieser Lambda-Ausdruck ruft explizit die PrintStream-Instanz ab und weist sie der Variablen p zu. Der Platzhalter o stellt jedes Element der Zahlenliste dar.

Es ist erwähnenswert, dass dieser Lambda-Ausdruck ein genaues Äquivalent von System.out::println ist und die ausgewertete System.out-Instanz erfasst. Die letztgenannte Methodenreferenz hat jedoch den Vorteil, dass sie prägnanter und lesbarer ist.

Während der Lambda-Ausdruck also eine explizitere Sicht auf das bietet, was unter der Haube passiert, bleibt die Methodenreferenz System.out::println bestehen eine wertvolle syntaktische Abkürzung in Szenarien wie dem oben dargestellten.

Das obige ist der detaillierte Inhalt vonWas ist der entsprechende Lambda-Ausdruck für „System.out::println' in Java?. 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