我有三个java8 Optionals,并希望返回以首选顺序实际存在的任何一个.似乎应该有一种简单的方法来链接它们:
return optionalA.orElseIfPresent(optionalB).orElseIfPresent(optionalC);
Run Code Online (Sandbox Code Playgroud)
如果这三个都是空的,则Optional.empty()应该返回.
现有的orElse和orElseGet并没有真正完成任务 - 它们必须返回一个实际值,因此剩下的后备不可能是Optionals本身.
在最糟糕的情况下,我可以有一长串ifPresent()检查,但似乎有一个更好的方法去实现它?
return Stream.of(optional1, optional2, optional3)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |