You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Builder链式返回中用StringUtils.isNotBlank判断apr/aprType非空赋值

解决方案

要实现仅当apr和aprType字段非空时才更新实体值,同时不在return语句中使用if语句,可以利用三元运算符结合StringUtils.isNotBlank()完成条件赋值,在链式调用中直接判断并选择赋值内容:

修改后的代码如下:

import org.apache.commons.lang3.StringUtils;

public WfccApplicationEntity constructApplicationEntity(
        UpdateWfccApplicationDecisionRequest request,
        WfccApplicationEntity entity) {
    return entity.toBuilder()
            .statusCode(request.getStatusCode())
            .caseNumber(request.getCaseNumber())
            .updatedBy(request.getUpdatedBy())
            // 仅当request的apr非空时更新,否则保留原实体值
            .apr(StringUtils.isNotBlank(request.getApr()) ? request.getApr() : entity.getApr())
            // 仅当request的aprType非空时更新,否则保留原实体值
            .aprType(StringUtils.isNotBlank(request.getAprType()) ? request.getAprType() : entity.getAprType())
            .statusCodeUpdatedDate(now())
            .customerId(request.getCustomerId())
            .build();
}

说明:

  • 三元运算符condition ? valueIfTrue : valueIfFalse替代了if逻辑:当request中的目标字段非空时,使用请求的新值;否则保留原entity中的旧值,避免空值覆盖原有有效数据。
  • 原代码中重复调用的.statusCodeUpdatedDate(now())已去除重复项,避免不必要的重复赋值。

内容的提问来源于stack exchange,提问作者Varsha Jadhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 20:40:07