当前位置: 首页 > 面试题库 >

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

李云
2023-03-14
问题内容

我偶然发现了以下Java代码,该代码使用了方法参考 System.out.println

class SomeClass{
    public static void main(String[] args) {
           List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9);
           numbers.forEach(System.out::println);
        }
    }
}

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


问题答案:

方法参考System.out::printlnSystem.out首先求值,然后创建一个等效的lambda表达式来捕获求值。通常,你将使用
o->System.out.println(o)与方法引用相同的方法来实现,但是此lambda表达式将在System.out每次调用该方法时求值。

因此,确切的等效条件是:

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

如果有人System.setOut(…);在两者之间进行调用,则会有所不同。



 类似资料:
  • 我偶然发现以下Java代码使用了的方法引用: 的等效lambda表达式是什么?

  • 我在Java 1.8中有以下代码。 如果没有lambda,如何将其转换为Java 1.7代码?

  • (译注:目前支持lambda的gcc编译器版本为4.5,其它详细的编译器对于C++11新特性的支持请参考http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport) Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数(译注:Lambda表达式也可以称为匿名函数,具有复杂行为的函数可以采用命名函数对象,当然,何谓复杂

  • Lambda表达式在Java 8中引入,并被吹捧为Java 8的最大特性.Lambda表达式有助于函数式编程,并简化了很多开发。 语法 (Syntax) lambda表达式的特征在于以下语法。 parameter -> expression body 以下是lambda表达式的重要特征。 Optional type declaration - 无需声明参数类型。 编译器可以从参数的值推断出相同的

  • 本文向大家介绍python 什么是lambda表达式?它有什么好处?相关面试题,主要包含被问及python 什么是lambda表达式?它有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 简单来说,lambda表达式通常是当你需要使用一个函数,但是又不想费脑命名一个函数的时候使用,也就是通常所说的匿名函数

  • 我被与的对比所困扰 我正在尝试验证客户端的用户输入值。对于它们的名字和姓氏,我有一个表达式,它适用于; 我需要JavaScript Regex的équivalent 我有很多困难的时间来解决它,没有任何工作。 Ex; null 非常感谢您的帮助。