如何借助Optional更简洁地为变量赋值?避免额外Optional变量
优化方案
可以利用Java 8+ Optional的链式API和三元运算符简化代码,全程仅需一个变量,完全省去中间的Optional变量:
Organization org = organizationRepository.findById( request.getOrgId() != null ? request.getOrgId() : DEFAULT_ORG ).orElseThrow(() -> new ClientException("Org not found"));
简化逻辑说明:
- 用三元运算符直接确定查询ID,替代原有的if-else分支赋值逻辑
- 调用
findById后链式调用orElseThrow:当查询结果为空时自动抛出指定异常,无需手动判断isPresent()再调用get() - 仅需声明一个
org变量,彻底消除额外的optionalOrg变量
内容的提问来源于stack exchange,提问作者dataman
相关产品推荐
相关产品推荐

