Java 当可选值为空值时,如何执行某些操作?

Java 当可选值为空值时,如何执行某些操作?,java,java-stream,optional,Java,Java Stream,Optional,在我的流中,我希望根据用户的输入获取MainMenuOption。如果enum MainMenuOptions包含这样的选项,我想返回它,如果不包含,则打印一些消息“没有这样的选项”,并再次获取用户的输入 return Arrays.stream(MainMenuOptions.values()) .filter(x -> x.getCommand().equals(ConsoleInput.getNextLineFromUser())) .

在我的流中,我希望根据用户的输入获取MainMenuOption。如果enum 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
返回Arrays.stream(MainMenuOptions.values())
.filter(x->x.getCommand().equals(ConsoleInput.getNextLineFromUser()))
.findFirst()//它返回可选的
.orElse()//否则返回一些值,无法执行某些操作
我如何用Java蒸汽实现它


提前感谢。

orElse
之前使用
可选的.map
操作将其转换为
可选的
,例如

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

一个想法,返回
可选的
,并让调用者打印任何消息。例如,调用者可以使用
ifPresentOrElse()
(从Java 9开始)。您可以抛出自定义异常,并要求用户再次选择是否引发
或lsethorn(()->new MenuOptionNotFoundException())
这些解决方案也很好。谢谢,谢谢你的帮助。