List<Assess> updateData = new ArrayList<>(); List<Assess> assessList = assessMapper.queryPerformanceAssessList(year, month, periodType, null, null, null); if(!CollectionUtils.isEmpty(assessList)){ for(Assess assess : assessList){ //更新状态:初始化 assess.setState(INIT_ASSESS_STATE); updateData.add(assess); } //批量更新 saveOrUpdateBatch(updateData); }优化这段代码
时间: 2024-01-24 16:01:59 浏览: 67
assess.zip
这段代码可以通过使用 lambda 表达式和 Stream API 进行优化,使代码更加简洁和易读。具体而言,可以使用 `map()` 方法将每个 `Assess` 对象的状态设置为初始化状态,然后使用 `collect()` 方法将结果收集到一个新的 `List` 中。最后,可以使用 `updateBatchById()` 方法批量更新数据库中的数据。
下面是优化后的代码示例:
```
List<Assess> assessList = assessMapper.queryPerformanceAssessList(year, month, periodType, null, null, null);
if (!CollectionUtils.isEmpty(assessList)) {
List<Assess> updateData = assessList.stream()
.peek(a -> a.setState(INIT_ASSESS_STATE))
.collect(Collectors.toList());
updateBatchById(updateData);
}
```
在优化后的代码中,我们使用 `stream()` 方法将 `assessList` 转换为一个 Stream,然后使用 `peek()` 方法将每个 `Assess` 对象的状态设置为初始化状态。最后,我们使用 `collect()` 方法将 Stream 转换为一个新的 `List`,并将其传递给 `updateBatchById()` 方法进行批量更新。
阅读全文