【发布时间】:2016-04-09 07:43:49
【问题描述】:
我有三个 java8 选项,并且想要返回实际存在的任何一个以首选顺序。似乎应该有一种简单的方法来链接它们:
return optionalA.orElseIfPresent(optionalB).orElseIfPresent(optionalC);
如果三个都是空的,那么应该返回一个Optional.empty()。
现有的 orElse 和 orElseGet 并不能真正完成任务 - 它们必须返回一个实际值,因此剩余的后备选项本身不可能是可选的。
在最坏的情况下,我可以有很长的 ifPresent() 检查列表,但似乎有更好的方法来解决它?
【问题讨论】: