首页  >  文章  >  Java  >  System.out::println 的 Lambda 表达式等价物是什么?

System.out::println 的 Lambda 表达式等价物是什么?

Linda Hamilton
Linda Hamilton原创
2024-11-03 15:16:30769浏览

What is the Lambda Expression Equivalent of System.out::println?

探索 System.out::println 等价的 Lambda 表达式

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 需要执行以下步骤:

  1. 将求值的 System.out 对象存储在变量中:

    <code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
  2. 在 lambda 表达式中使用存储的变量:

    <code class="java">numbers.forEach(o -> p.println(o));</code>

这完全相同确保对 System.out 的任何更改都不会影响lambda 表达式的行为。

以上是System.out::println 的 Lambda 表达式等价物是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn