gpt4 book ai didi

Java:lambda 和方法引用是否有不同的执行时间?

转载 作者:行者123 更新时间:2023-12-04 12:31:15 24 4
gpt4 key购买 nike

代码:

@FunctionalInterface
interface VoidSupplier {
void apply() throws Exception;
}

void execute(VoidSupplier voidSupplier) {
if (voidSupplier != null) {
try {
voidSupplier.apply();
} catch (Throwable e) {
e.printStackTrace();
}
}
}

调用执行使用lambda:

@Test
public void testLambda() {
InputStream i = null;
execute(() -> i.close()); // use lambda
System.out.println("output some message"); // will be executed
}

调用执行使用方法引用:

@Test
void testMethodReference() {
InputStream i = null;
execute(i::close); // use method reference
System.out.println("output some message"); // will not be executed
}

当使用lambda时,execute(VoidSupplier)执行,然后然后执行 () -> i.close().
但是使用方法引用i::close执行,然后然后执行execute( VoidSupplier).
为什么 lambda 和方法引用的执行时间不同?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com