首页 > 解决方案 > 在设置变量之前检查 null - 没有 if-else

问题描述

我用来从一个对象Lombok-Builder构建我的apijava对象entity

RewardApi.builder()
                .rewardId(rewardEntity.getrewardId())
                .rewardTitle(rewardEntity.getrewardTitle())
                .rewardText(rewardEntity.getrewardText())
                .rewardFor(rewardEntity.getrewardFor())
                .rewardType(rewardEntity.getrewardType())
                .rewardFromDate(rewardEntity.getrewardFromDate().toZonedDateTime())
                .rewardToDate(rewardEntity.getrewardToDate().toZonedDateTime())
                .isDisplayOn(rewardEntity.getIsDisplayOn())
                .createdId(rewardEntity.getCreatedId())
                .updatedId(rewardEntity.getUpdatedId())
                .createdDate(rewardEntity.getCreatedDate().toZonedDateTime())
                .lastModifiedDate(rewardEntity.getLastModifiedDate().toZonedDateTime())
                .build();

我正在nullPointerException设置lastModifiedDate字段,因为entity对象正在获取该字段,并且正在null执行toZonedDateTime()null

如何在没有传统方式(如下所述)的情况下解决这个问题

if (null!=rewardEntity.getLastModifiedDate(){....}

我想在null使用设置变量时进行检查,builder-pattern而不是null在构建对象后进行检查。无论如何 ?

标签: javajava-8lombok

解决方案


rewardEntity.getLastModifiedDate() != null ? rewardEntity.getLastModifiedDate().toZonedDateTime() : null 

它被称为条件运算符,它是一个三元运算符,因为它具有三个操作数。


推荐阅读