List<ItyIotFdUser> list = this.list(new LambdaQueryWrapper<ItyIotFdUser>() .eq(ItyIotFdUser::getOpenId, req.getOpenId()) .eq(ItyIotFdUser::getUserType, req.getUserType()) ); if (CollUtil.isEmpty(list)){ return ""; } return list.stream().map(ItyIotFdUser::getOrgUid).collect(Collectors.joining(",")); 优化代码
时间: 2023-03-29 18:00:24 浏览: 155
Node.js:开启全栈开发的钥匙.pdf
这是一段 Java 代码,用于查询符合条件的 ItyIotFdUser 对象列表,并将它们的 OrgUid 属性拼接成一个字符串返回。如果列表为空,则返回空字符串。要优化这段代码,可以考虑以下几点:
1. 使用链式调用:LambdaQueryWrapper 提供了很多链式调用的方法,可以将多个条件组合在一起,这样代码更加简洁易读。例如,可以将两个 eq 方法合并成一个:
.eq(ItyIotFdUser::getOpenId, req.getOpenId())
.eq(ItyIotFdUser::getUserType, req.getUserType())
改为:
.eq(ItyIotFdUser::getOpenId, req.getOpenId(), ItyIotFdUser::getUserType, req.getUserType())
2. 使用 Optional 类型:如果查询结果为空,可以使用 Optional 类型来避免返回 null 值。例如:
Optional<List<ItyIotFdUser>> optionalList = Optional.ofNullable(this.list(wrapper));
return optionalList.map(list -> list.stream().map(ItyIotFdUser::getOrgUid).collect(Collectors.joining(","))).orElse("");
3. 使用 StringUtils 类:如果需要将多个字符串拼接成一个字符串,可以使用 StringUtils 类的 join 方法,这样代码更加简洁。例如:
return optionalList.map(list -> StringUtils.join(list.stream().map(ItyIotFdUser::getOrgUid).toArray(), ",")).orElse("");
阅读全文