java可选项_可选orElse Java中的可选项

我一直在使用新的Optional type in Java 8,并在功能上支持我've come across what seems like a common operation that isn':"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();

}

我很好奇是否有这样的方法不存在的原因,如果我只是以一种无意的方式使用Optional,以及人们提出了处理这种情况的其他方式 .

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

另外,如果有人知道,这样的方法是否会包含在JDK 9中,我可以在哪里提出这样的方法?对我来说,这似乎是对API的一个相当明显的遗漏 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值