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

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

该代码的客户端通过以下方式使用名为“coupons”的Optional:
if (coupons.isPresent) {
   save (coupons.get());
}

这是Optional的正确用法吗?

最佳答案

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

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

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

但是话又说回来了

09-10 21:31