Optional类的使用

本文介绍了一种使用Java Optional类简化多层DTO中数据操作的方法,通过Optional避免了繁琐的判空检查,同时展示了如何对支付工具卡号进行加密处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对多层的dto中的数据进行操作时,需要进行判空处理时,使用optional来进行判空,简化代码

 Optional.ofNullable(bankCard).map(b->b.getQueryBindCardsResponseDto()).ifPresent(bindCard->{
             Optional.ofNullable(bindCard.getDefaultCard()).map(d->d.getCardNo()).ifPresent(cardNo->{
                 try{
                     bankCard.getQueryBindCardsResponseDto().getDefaultCard().setCardNo(DESUtil.aesEncrypt(cardNo, DESUtil.KEY));
                 }catch (Exception e){
                     log.info("支付工具卡号加密异常,异常",e);
                 }
             });
             Optional.ofNullable(bindCard.getEnableCardList()).filter(list-> !list.isEmpty()).ifPresent(enableCardList->{
                     enableCardList.forEach(record->{
                         try{
                            record.setCardNo(DESUtil.aesEncrypt(record.getCardNo(), DESUtil.KEY));
                         }catch (Exception e){
                             log.info("支付工具卡号加密异常,异常",e);
                         }
                     });
             });
             log.info("没有问题");
             Optional.ofNullable(bindCard.getDisableCardList()).filter(list-> !list.isEmpty()).ifPresent(disableCardList->{
                 disableCardList.forEach(record->{
                     try{
                         record.setCardNo(DESUtil.aesEncrypt(record.getCardNo(), DESUtil.KEY));
                     }catch (Exception e){
                         log.info("支付工具卡号加密异常,异常",e);
                     }
                 });
             });
         });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值