首页 > 解决方案 > 如何在 Java 中使用 Optional?

问题描述

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

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

此代码的客户端Optional以下列方式使用命名的“优惠券”:

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

这是正确的用法Optional吗?

标签: javajava-8optional

解决方案


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

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

至:

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

但话说回来,这真的很糟糕。


推荐阅读