Java 的方法引用语法提供了一种简洁且可读的方法来引用方法。在给定的示例中,方法引用 System.out::println 用作 forEach 方法的参数。
理解方法引用
方法引用 System .out::println 表示应使用 System.out 引用的对象来调用 println 方法。在本例中,System.out 是 System 类的静态成员,表示标准输出流。
等效 Lambda 表达式
System.out 的等效 lambda 表达式。 out::println 将为:
<code class="java">o -> System.out.println(o)</code>
此 lambda 表达式首先计算 System.out,捕获计算值,然后创建一个 lambda 函数。此 lambda 函数采用参数 o 并在捕获的 System.out 对象上调用 println 方法,将 o 的值打印到标准输出。
精确等效 Lambda 表达式
但是,值得注意的是,完全等效于 System.out::println 需要执行以下步骤:
将求值的 System.out 对象存储在变量中:
<code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
在 lambda 表达式中使用存储的变量:
<code class="java">numbers.forEach(o -> p.println(o));</code>
这完全相同确保对 System.out 的任何更改都不会影响lambda 表达式的行为。
以上是System.out::println 的 Lambda 表达式等价物是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!