Map<String,String> map = new HashMap<>(); //将Checkbox[]数据按“,”分割 String str = StringUtils.join(prepatrol.getCheckbox(),","); prepatrol.setValue(str); prepatrol.setCheckbox(null); List<PrePatrol> prePatrols = this.baseMapper.dictList(); for (PrePatrol entity : prePatrols) { map.put(entity.getIds(), entity.getIdsName()); } prepatrol.setId(0); prepatrol.setIdsName(map.get(prepatrol.getIds())) ; if ("8".equals(prepatrol.getIds())){ // 1:交班信息填写完成 PreEmployment preEmployment = new PreEmployment(); preEmployment.setId(prepatrol.getPid()); preEmployment.setEndhandover(1); preEmploymentService.edit(preEmployment); } this.save(prepatrol);
时间: 2024-04-07 07:33:09 浏览: 72
这段代码已经相当简洁了,但还有一些可以优化的地方:
1. 当遍历`prePatrols`列表并将其放入`map`时,可以在循环之前初始化`map`的大小,以提高性能。如果你知道`prePatrols`列表的大小,你可以使用`new HashMap<>(prePatrols.size())`来初始化`map`。
2. 在条件判断中,使用硬编码的字符串"8"进行比较不利于代码的可读性和维护性。可以将该值定义为一个具有描述性名称的常量,并使用常量进行比较。
下面是优化后的代码示例:
```java
Map<String, String> map = new HashMap<>(prePatrols.size());
String str = StringUtils.join(prepatrol.getCheckbox(), ",");
prepatrol.setValue(str);
prepatrol.setCheckbox(null);
for (PrePatrol entity : prePatrols) {
map.put(entity.getIds(), entity.getIdsName());
}
prepatrol.setId(0);
prepatrol.setIdsName(map.get(prepatrol.getIds()));
final String TARGET_IDS = "8";
if (TARGET_IDS.equals(prepatrol.getIds())) {
// 1:交班信息填写完成
PreEmployment preEmployment = new PreEmployment();
preEmployment.setId(prepatrol.getPid());
preEmployment.setEndhandover(1);
preEmploymentService.edit(preEmployment);
}
this.save(prepatrol);
```
请注意,上述代码示例仅供参考,并未在实际环境中测试。确保在进行任何更改之前进行适当的测试,并根据实际需求进行调整。
阅读全文