如何从Optional <string>返回String?

时间:2016-10-09 11:14:20

标签: javafx dialog

我有以下功能。

public String getSomething(){
   TextInputDialog dialog = new TextInputDialog();
   dialog.setHeaderText("X");
   dialog.setTitle("Y");
   Optional<String> result = dialog.showAndWait();
   return result;
}

显然,返回的值不是String类型。如果结果的类型为String,我怎么能返回Optional<String>

3 个答案:

答案 0 :(得分:1)

尝试执行result.get()应该返回一个字符串。

答案 1 :(得分:1)

我使用orElse,在实际值不存在的情况下提供默认值:

public String getSomething(){
    TextInputDialog dialog = new TextInputDialog();
    dialog.setHeaderText("X");
    dialog.setTitle("Y");
    return dialog.showAndWait().orElse("n/a");
}

答案 2 :(得分:0)

我会这样做,以确保您免受null的攻击 if(a. isPresent()) {a.get()}