可以使用一个stream来优化这段代码。可以将两个map操作合并为一个,并使用if else语句来确定要执行的操作。以下是优化后的代码示例:

List activityItems = activityInfoParam.getActivityCouponConfigList().stream() .map(activityCouponConfigParam -> { ActivityItem activityItem = new ActivityItem(); activityItem.setActivityCode(activityCode); activityItem.setType(COUPON.getTypeCode()); activityItem.setCode(activityCouponConfigParam.getCouponFlag()); activityItem.setExt(activityCouponConfigParam.getSendPlatform()); activityItem.setSendMethod(activityCouponConfigParam.getSendMethod()); return activityItem; }) .collect(Collectors.toList());

activityItems.addAll(activityInfoParam.getActivityMessageConfigList().stream() .map(activityMessageConfigParam -> { ActivityItem activityItem = new ActivityItem(); activityItem.setActivityCode(activityCode); Integer sendType = activityMessageConfigParam.getSendType(); activityItem.setType(sendType); activityItem.setCode(getTypeValue(sendType)); ActivityItem.MessageExt messageExt = new ActivityItem.MessageExt(); BeanUtils.copyProperties(activityMessageConfigParam, messageExt); activityItem.setExt(JSONUtil.toJsonStr(messageExt)); activityItem.setSendMethod(activityMessageConfigParam.getSendMethod()); activityItem.setSendType(activityMessageConfigParam.getSendType()); return activityItem; }) .collect(Collectors.toList()));

这样就可以通过一个stream操作来生成两个不同类型的对象列表,并将它们合并为一个列表

ListActivityItem couponConfig = activityInfoParamgetActivityCouponConfigListstreammapactivityCouponConfigParam - ActivityItem activityItem = new ActivityItem; activityItemsetAct

原文地址: https://www.cveoy.top/t/topic/iw7l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录