从一个可选或另一个中获取值
我有两个实例,我想得到一个:java.util.Optional
Optional
- 具有第一个可选的值(如果它具有值)。
- 具有第二个“可选”的值(如果它具有值)。
- 都不为空 可选 具有值。
有没有一种直截了当的方法可以做到这一点,即是否已经有一些API可以做到这一点?
以下表达式将执行此操作,但我不得不提到第一个可选两次:
firstOptional.isPresent() ? firstOptional : secondOptional
这正是这样做的,但这种方法在Java 8的API中不存在。com.google.common.base.Optional.or()
aioobe接受的答案列出了一些替代方法,以克服必须计算此类值的API权利的省略(这回答了我的问题)。我现在选择在我的代码库中添加一个实用程序函数:Optional
public static <T> Optional<T> or(Optional<T> a, Optional<T> b) {
if (a.isPresent())
return a;
else
return b;
}