java - 如何在Java中使用Optional?

标签 java java-8 option-type

我有一项服务,可以从数据库中查询优惠券列表。此服务向客户端返回一个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

但话又说回来,这确实取决于品味。

关于java - 如何在Java中使用Optional?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62073990/

相关文章:

java - throw new exception inside a catch 是如何工作的?

java - Fragment 中的通知管理器

java - if 语句替代 Java 8

与 MS Access 的 java 连接

java - 对于 Duplicate 类型,方法 len(int) 未定义

Java mockito 服务测试参数取反

java - 以下代码是否应该在 Java 1.8 下编译

c++ - 为什么 make_optional 会衰减它的参数类型?

java - 如何在 Java 中将可选映射转换为流映射

c# - C# 中的 Maybe/Option monad