我對Java lambda表達式/ lambda語法仍然完全困惑。我讀了lambdas採取兩種一般形式:JavaFX 8如何做一個零參數的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的頁面和頁面,我仍然無法完全理解它。
我真的很苦惱lambdas。有人能給我一個清楚的解釋,涉及什麼。
OH !!! Grrr,這很明顯!我無法看到樹木。 我們調用'.setOnFinished()'!!!並傳遞給它一個lambda。我現在覺得很蠢! – jdurston
lambda可能有點混亂。但是一旦你掌握了它們,它們會讓你的生活變得更容易。 –