首页 > Java > java教程 > Java 中 `System.out::println` 的等效 lambda 表达式是什么?

Java 中 `System.out::println` 的等效 lambda 表达式是什么?

Patricia Arquette
发布: 2024-11-03 03:26:03
原创
1099 人浏览过

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

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

在 Java 编程中,方法引用提供了调用方法的简洁语法。其中一个例子是 System.out::println,它作为引用 System.out 类的 println 方法的快捷方式。

此方法引用允许我们编写如下代码:

numbers.forEach(System.out::println);
登录后复制

其中数字列表包含打印到控制台的整数。然而,有一个相应的 lambda 表达式可以实现相同的功能。

要找到这个 lambda 表达式,我们需要了解方法引用的工作原理。当使用 System.out::println 时,System.out 的初始计算会生成一个 PrintStream 实例,该实例存储在 lambda 表达式中并用于调用 println。

直接将此概念翻译为 lambda 表达式,我们得到以下内容:

numbers.forEach(o -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(o);
});
登录后复制

此 lambda 表达式显式检索 PrintStream 实例并将其分配给变量 p。占位符 o 代表数字列表中的每个元素。

值得注意的是,这个 lambda 表达式与 System.out::println 完全相同,捕获计算的 System.out 实例。然而,后一种方法引用的优点是更加简洁和可读。

因此,虽然 lambda 表达式提供了更明确的视图来了解底层发生的情况,但方法引用 System.out::println 仍然存在在上述示例的场景中,这是一种有价值的语法快捷方式。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板