Java8 函数式编程 Lambda表达式是怎么执行的?
public static <T> void useConsumer(Consumer<T> consumer, T t) {
consumer.accept(t);
consumer.accept(t);
}
@Test
public void lambadaTest_02() {
useConsumer(System.out::println, "Hello World!");
}
想问下这段代码是怎么运行的!初入lambda表达式还不清楚,希望大佬带我入门
代码运行,会输出两段Hello World
如果对你的Java类生成的class进行反编译的话
将会得出如下结果:
上面最核心一条指令是
invokedynamic
. 这条指令允许你把System.out.println看成是Consumer接口的accept。