3 回答
TA贡献1725条经验 获得超7个赞
所有的孩子都喜欢Optional
这些日子:
Optional.ofNullable(rewardEntity.getLastModifiedDate()) .map(r -> r.toZonedDateTime()) .orElse(null) // or some other default value
TA贡献1909条经验 获得超7个赞
rewardEntity.getLastModifiedDate() != null ? rewardEntity.getLastModifiedDate().toZonedDateTime() : null
它被称为条件运算符,它是一个三元运算符,因为它具有三个操作数。
TA贡献1906条经验 获得超10个赞
你可以有一个通用的实用方法来处理空情况,比如
static <T, R> R transform(T obj, Function<T, R> function) {
return obj != null ? function.apply(obj) : null;
}
并按如下方式使用
.rewardToDate(transform(rewardEntity.getRewardToDate(), OffsetDateTime::toZonedDateTime))
实际上更好的是“覆盖” lombok 构建器方法,因为您现在拥有的看起来更像是占位符/DTO 而不是构建器:
@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;
}
}
}
添加回答
举报