CodeSkill

jasmine 于 2019-09-01 发布

BigDecimal类型累加结果

BigDecimal peisongAmount = Optional.ofNullable(context.getyingxiao())
        .map(promo -> Safer.stream(promo.getQuanPrograms())
        .filter(p -> p.getGiftType() == GiftTypeEnum.DELI_COUPON.getGiftType())
        .map(p -> Saferr.ensure(p.getPromoAmount()))
        .reduce(BigDecimal.ZERO, BigDecimal::add))
        .orElse(BigDecimal.ZERO);

flatMap处理对象List中的List,将二维数组转换为一维数组

Map<String, String> updateParamMap = Coding.stream(flowInfo.getStages())
        .map(WorkStage::getParams)
        .filter(Coding::notNull)
        .flatMap(List::stream)
        .peek(param -> {
            if (Coding.notNull(param)) {
                System.out.println("---过滤前属性:" + param.getParamType() + "属性值:" + param.getParamVal());
            }
        })
        .filter(param -> Coding.notNull(param) && !param.getParamType().startsWith("@") && Coding.notBlank(param.getParamVal()))
        .peek(param -> {
            System.out.println("---过滤[后]属性:" + param.getParamType() + "属性值:" + param.getParamVal());
        })
        .collect(Collectors.toMap(StageParam::getParamType, StageParam::getParamVal, (o, n) -> o));

MAP-LIST容器

private final MultiValueMap<String, G<?>> gMap = new LinkedMultiValueMap<>();

Optional多层获取值,并给默认值

Optional.ofNullable(context.getAssetsInfo()).map(AssetsInfo::getCalcVipAssetsInfo).map(CalcVipAssetsInfo::getFoodLimitJson).orElse("")