java8 orelse_Java 8可选orElse可选

我一直在使用新的

Optional type in Java 8,我遇到了一个似乎是一个常见的操作,不支持功能:一个“orElseOptional”

考虑以下模式:

Optional resultFromServiceA = serviceA(args);

if (resultFromServiceA.isPresent) return result;

else {

Optional resultFromServiceB = serviceB(args);

if (resultFromServiceB.isPresent) return resultFromServiceB;

else return serviceC(args);

}

有很多形式的这种模式,但它归结为想要一个可选的“orElse”接受一个函数产生一个新的可选,仅当当前不存在时调用。

它的实现将看起来像这样:

public Optional orElse(Supplier> otherSupplier) {

return value != null ? this : other.get();

}

我很好奇,如果有一个原因,这样的方法不存在,如果我只是使用可选的非预期的方式,以及人们提出了什么其他方式来处理这种情况。

我应该说,我认为涉及自定义实用程序类/方法的解决方案不优雅,因为使用我的代码的人不一定知道他们存在。

此外,如果有人知道,这样的方法将包括在JDK 9,我在哪里可以提出这样的方法?这看起来像一个非常明显的省略对我的API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值