gpt4 book ai didi

JavaFX 8 如何使用零参数执行 lambda 表达式

转载 作者:行者123 更新时间:2023-11-29 04:53:07 26 4
gpt4 key购买 nike

我仍然对 Java lambdas/lambda 语法感到困惑。我读到 lambda 有两种一般形式:

(param1, param2, ...) -> expression;

(param1, param2, ...) -> { /* code statements */ };

好的,好的。并且当表达式不接受参数(并且被称为空)时,括号仍然是必需的。

现在,以下代码可以正常工作:

primaryStage.show();
PauseTransition pause =
new PauseTransition(Duration.seconds(3));
pause.setOnFinished(event ->
primaryStage.hide());
pause.play();

但是,当我想到 primaryStage.hide() 不需要任何参数时,我想我可以从 lambda 表达式中删除该参数。这(遵守保留括号的规则)给了我以下代码:

primaryStage.show();
PauseTransition pause =
new PauseTransition(Duration.seconds(3));
pause.setOnFinished(() ->
primaryStage.hide());
pause.play();

哪个不起作用!!!

我尝试了很多排列组合,但都无济于事。尽管仔细研究了有关 lambda 的页面和页面,但我仍然无法完全理解它。

我真的在与 lambda 作斗争。有人可以给我一个明确的解释吗?

最佳答案

.setOnFinished() 方法将 EventHandler 作为参数(这是一个函数式接口(interface))。

它有一个名为 handle() 的方法采用通用类型,这是您应该考虑其参数的方法;所以你必须给它传递一个参数。

关于JavaFX 8 如何使用零参数执行 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698798/

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