In my stream I want to get MainMenuOption based on user's input. If enum MainMenuOptions contains such option I want to return it, if not - print some message "THERE IS NO SUCH OPTION" and get user's input again.
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
How I can achive it with Java Steams?
Thank you in advance.
Optional<MainMenuOptions>and leave to the caller to print any message. The caller may for example useifPresentOrElse()(since Java 9).orElseThrow(()->new MenuOptionNotFoundException())