如何在Java中使用Optional?

如何在Java中使用Optional?,java,java-8,optional,Java,Java 8,Optional,我有一个从数据库查询优惠券列表的服务。此服务向客户端返回一个可选的 return listOfCoupons.isEmpty() ? Optional.empty() : Optional.of(listOfCoupons.get(listOfCoupons.size() - 1)); 此代码的客户端以以下方式使用名为“优惠券”的可选: if (coupons.isPresent) { save (coupons.get()); } 这是否正确使用了可选 从远处看,您对可选API的使

我有一个从数据库查询优惠券列表的服务。此服务向客户端返回一个
可选的

return listOfCoupons.isEmpty() ? Optional.empty() : Optional.of(listOfCoupons.get(listOfCoupons.size() - 1));
此代码的客户端以以下方式使用名为“优惠券”的
可选

if (coupons.isPresent) {
   save (coupons.get());
} 

这是否正确使用了
可选

从远处看,您对
可选
API的使用看起来不错,因为我看不出有任何滥用。如果我挑剔并提出一些建议,我会改变:

if (coupons.isPresent) {
   save (coupons.get());
} 
致:


不过,这还是要看味道了。

你是什么意思?虽然
if
逻辑检查可以潜在地“改进”到
优惠券,但从远处看它看起来很好但这最终取决于品味。你可以用任何你喜欢的方式使用它。你的代码非常好。如果您愿意,您可以让它更“实用”,如:
coups.isPresent(this::save)(用保存方法所属的对象替换)
coupons.ifPresent(c -> save(c)); //or method reference