3 回答

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

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ù)。

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;
}
}
}
添加回答
舉報(bào)