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");
在我的流中,我想根据用户的输入获取 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");