if (record.getLogo() != null) { tBaseTool.setLogo(record.getLogo()); } elseif (record.getInstallStatus() != null && record.getInstallStatus() == InstallStatus.UPGRADING.getStatus()) { tBaseTool.setLogo(this.getLogo()); }
类似这种,如果大量出现,会很冗余复杂,改成如下: 4
/** * 是更新,用BaseToolMarket里面的数据就是this里面的,不是更新用前端传的 * * @param record 前端传的record字段 * * @return BaseTool表无状态字段的基础字段 */ public TBaseTool toBaseTool(TBaseTool record) { TBaseTool tBaseTool = new TBaseTool(); setField(tBaseTool::setId, record.getId(), this::getId, null); setField(tBaseTool::setCode, record.getCode(), this::getCode, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setDesc, record.getDesc(), this::getDesc, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setDescEn, record.getDescEn(), this::getDescEn, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setName, record.getName(), this::getName, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setNameEn, record.getNameEn(), this::getNameEn, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setLogo, record.getLogo(), this::getLogo, InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setType, record.getType(), () -> Integer.valueOf(this.getType()), InstallStatus.UPGRADING.getStatus()); setField(tBaseTool::setVersion, record.getVersion(), this::getVersion, InstallStatus.UPGRADING.getStatus()); return tBaseTool; } private <T> void setField(Consumer<T> setter, T value, Supplier<T> defaultValueSupplier, Integer upgradingStatus) { if (value != null) { setter.accept(value); } else if (upgradingStatus != null && upgradingStatus == InstallStatus.UPGRADING.getStatus()) { setter.accept(defaultValueSupplier.get()); } }
浙公网安备 33010602011771号