3 回答
TA贡献1880条经验 获得超4个赞
String target = Optional.ofNullable(value1).orElse(value2)
如果value1 == null
,则返回value2
- 具有值或为空。不需要value2 == null
通过将其映射到 null来显式处理这种情况。
TA贡献1858条经验 获得超8个赞
如果你只有两个选择,你可以这样做:
target = Optional.ofNullable(value1)
.orElseGet(() -> Optional.ofNullable(value2).orElse(null));
即使这可以用于两个以上的变量。
使用 java-9,这可以变得更具可读性:
target = Optional.ofNullable(value1)
.or(() -> Optional.ofNullable(value2))
.orElse(null);
确实,另一个答案有一个很好的观点;因此,这可以进一步简化为根本不使用Optionals,仍然是一行:
target = value1 != null ? value1 : value2;
TA贡献1847条经验 获得超11个赞
如果你想检查 AND 条件
Optional.ofNullable(value)
.filter( res -> StringUtils.isNotEmpty((CharSequence) val.get()))
.ifPresent( finalResul -> {
//apply logic
});
添加回答
举报