如何在Java中使用Optional?

问题描述 投票:3回答:1

我有一个服务,可以从数据库中查询优惠券列表。该服务将Optional返回给客户端。

return listOfCoupons.isEmpty() ? Optional.empty() : Optional.of(listOfCoupons.get(listOfCoupons.size() - 1));

并且此代码的​​客户端通过以下方式使用名为“优惠券”的Optional

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

这是Optional的正确用法吗?

java java-8 optional
1个回答
6
投票

您对Optional<T> API的使用在某种程度上看起来还不错,因为我看不到任何滥用。如果我要挑剔并建议我做点改变:

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

至:

coupons.ifPresent(c -> save(c)); //or method reference

但是再说一次,这真是令人难受。

© www.soinside.com 2019 - 2024. All rights reserved.