Optional 为 null 值时如何操作?

How to do some operation when Optional has null value?

在我的流中,我想根据用户的输入获取 MainMenuOption。如果枚举 MainMenuOptions 包含这样的选项,我想 return 它,如果没有 - 打印一些消息 "THERE IS NO SUCH OPTION" 并再次获取用户的输入。

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 Steam 实现它?

提前致谢。

orElse之前使用一个Optional.map操作转换为Optional<String>

return Arrays.stream(MainMenuOptions.values())
        .filter(x -> x.getCommand().equals(ConsoleInput.getNextLineFromUser()))
        .findFirst()
        .map(MainMenuOptions::name)
        .orElse("THERE IS NO SUCH OPTION");