当Optional具有空值时如何进行操作?

问题描述 投票:0回答:1

在我的信息流中,我想根据用户的输入获取MainMenuOption。如果枚举MainMenuOptions包含这样的选项,我想将其返回,否则-打印一些消息“没有这样的选项”并再次获取用户输入。

return Arrays.stream(MainMenuOptions.values())
            .filter(x -> x.getCommand().equals(ConsoleInput.getNextLineFromUser()))
            .findFirst() // it returns Optional<MainMenuOptions>
            .orElse(); //or Else return some value, cannot do something

如何使用Java Steams实现它?

谢谢你。

java java-stream optional
1个回答
1
投票

[在Optional.map之前使用orElse操作转换为Optional<String>,例如

return Arrays.stream(MainMenuOptions.values())
        .filter(x -> x.getCommand().equals(ConsoleInput.getNextLineFromUser()))
        .findFirst()
        .map(MainMenuOptions::name)
        .orElse("THERE IS NO SUCH OPTION");
© www.soinside.com 2019 - 2024. All rights reserved.