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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 03:26:031095browse

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

Exploring the Equivalent Lambda Expression for System.out::println

In Java programming, method references offer a concise syntax to invoke methods. One such example is System.out::println, which serves as a shortcut for referring to the println method of the System.out class.

This method reference allows us to write code like this:

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

where the numbers list contains integers that are printed to the console. However, there is a corresponding lambda expression that achieves the same functionality.

To find this lambda expression, we need to understand how method references work. When using System.out::println, the initial evaluation of System.out yields an instance of PrintStream, which is stored in a lambda expression and used to invoke println.

Directly translating this concept into a lambda expression, we get the following:

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

This lambda expression explicitly retrieves the PrintStream instance and assigns it to the variable p. The placeholder o represents each element of the numbers list.

It's worth noting that this lambda expression is an exact equivalent of System.out::println, capturing the evaluated System.out instance. However, the latter method reference has the advantage of being more concise and readable.

So, while the lambda expression provides a more explicit view of what happens under the hood, the method reference System.out::println remains a valuable syntactic shortcut in scenarios like the one exemplified above.

The above is the detailed content of What is the equivalent lambda expression for `System.out::println` in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn