第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在設(shè)置變量之前檢查 null - 沒有 if-else

在設(shè)置變量之前檢查 null - 沒有 if-else

GCT1015 2022-10-07 17:54:54
我用來從一個(gè)對象Lombok-Builder構(gòu)建我的apijava對象entityRewardApi.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設(shè)置lastModifiedDate字段,因?yàn)閑ntity對象正在獲取該字段,并且正在null執(zhí)行toZonedDateTime()null如何在沒有傳統(tǒng)方式(如下所述)的情況下解決這個(gè)問題if (null!=rewardEntity.getLastModifiedDate(){....}我想在null使用設(shè)置變量時(shí)進(jìn)行檢查,builder-pattern而不是null在構(gòu)建對象后進(jìn)行檢查。無論如何 ?
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

所有的孩子都喜歡Optional這些日子:

Optional.ofNullable(rewardEntity.getLastModifiedDate())
    .map(r -> r.toZonedDateTime())
    .orElse(null) // or some other default value


查看完整回答
反對 回復(fù) 2022-10-07
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

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

它被稱為條件運(yùn)算符,它是一個(gè)三元運(yùn)算符,因?yàn)樗哂腥齻€(gè)操作數(shù)。


查看完整回答
反對 回復(fù) 2022-10-07
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

你可以有一個(gè)通用的實(shí)用方法來處理空情況,比如


static <T, R> R transform(T obj, Function<T, R> function) {

    return obj != null ? function.apply(obj) : null;

}

并按如下方式使用


.rewardToDate(transform(rewardEntity.getRewardToDate(), OffsetDateTime::toZonedDateTime))

實(shí)際上更好的是“覆蓋” lombok 構(gòu)建器方法,因?yàn)槟F(xiàn)在擁有的看起來更像是占位符/DTO 而不是構(gòu)建器:


@Builder

private static class RewardApi {

    //...

    private ZonedDateTime rewardToDate;


    public static class RewardApiBuilder {


        public RewardApiBuilder rewardToDate(OffsetDateTime offsetDateTime) {

            if(offsetDateTime != null) {

                this.rewardToDate = offsetDateTime.toZonedDateTime();

            }

            return this;

        }

    }

}


查看完整回答
反對 回復(fù) 2022-10-07
  • 3 回答
  • 0 關(guān)注
  • 143 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號