【问题标题】:Returning TextField Input using lambda expressions使用 lambda 表达式返回 TextField 输入
【发布时间】:2016-10-19 04:04:03
【问题描述】:

EDITTED - 仍然出现同样的错误

我正在尝试创建一个函数,该函数将获取用户选择的单词,验证它是否是所有字符,然后返回它。但我得到了错误

"incompatible types: bad return type in lambda expression
 unexpected return value
 Unnecessary return statement"

我不明白如何更改它以使其更好地工作。

 String newWordScene(Stage primaryStage)
{
    Text prompText = new Text("Word to guess: ");
    TextField wordToGuess = new TextField();
    Button submitButton = new Button();

    GridPane grid = new GridPane();
    grid.add(prompText, 0, 0);
    grid.add(wordToGuess, 0, 1);
    grid.add(submitButton, 0, 2);

    Scene newWordScene = new Scene(grid, 500, 500);
    primaryStage.setScene(newWordScene);
    primaryStage.show();

            submitButton.setOnAction(e->
    {
        if(verify(wordToGuess.getText()))
            return wordToGuess.getText();
    });
}
}

【问题讨论】:

  • 语法错误。当你在 lambda 中使用 return 语句时,你必须使用像 e -> { return wordToGuess.getText(); } 这样的大括号
  • 用花括号括起来或者干脆wordToGuess.getText()
  • 您使用的是什么 Button 类。我找不到使用 setOnAction() 方法的方法。
  • 我正在使用包 javafx.scene.control.Button

标签: java lambda textfield


【解决方案1】:

当使用带有 setOnAction() 的 lambda 时,您不能返回值。

【讨论】:

  • 那我应该怎么做才能得到那个值呢?
  • @SamanthaBlansett 你想对文本值做什么?
  • 我将它用于一个刽子手类型的游戏,一个用户选择一个单词,下一个玩家必须猜测它。
  • @SamanthaBlansett 然后你需要以某种方式存储这个词。最有可能在某个领域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 2011-06-11
  • 1970-01-01
  • 2019-09-19
相关资源
最近更新 更多