Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do some operation when Optional has null value?

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.

like image 960
MrFisherman Avatar asked Jan 18 '26 08:01

MrFisherman


1 Answers

Use a Optional.map operation before orElse to transform to Optional<String> such as

return Arrays.stream(MainMenuOptions.values())
        .filter(x -> x.getCommand().equals(ConsoleInput.getNextLineFromUser()))
        .findFirst()
        .map(MainMenuOptions::name)
        .orElse("THERE IS NO SUCH OPTION");
like image 195
Naman Avatar answered Jan 19 '26 21:01

Naman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!