for(FlowHandleUser obj : handleList){ if(!mainStatus.equals(obj.getStatus())){ mainStatus = WT_APPROVAL; } if(SEAL_STATUS_BAD.equals(obj.getReturnStatus())){ returnStatus = SEAL_STATUS_BAD; } }如何优化这段代码
时间: 2024-01-04 12:03:02 浏览: 28
这段代码可以进行如下优化:
1. 使用Stream API进行简化:
```
mainStatus = handleList.stream()
.map(FlowHandleUser::getStatus)
.filter(status -> !mainStatus.equals(status))
.findFirst()
.orElse(WT_APPROVAL);
returnStatus = handleList.stream()
.map(FlowHandleUser::getReturnStatus)
.filter(SEAL_STATUS_BAD::equals)
.findFirst()
.orElse(returnStatus);
```
2. 使用foreach遍历时,可以将判断条件提取出来,只执行一次:
```
boolean isMainStatusSet = false;
boolean isReturnStatusSet = false;
for(FlowHandleUser obj : handleList){
if(!isMainStatusSet && !mainStatus.equals(obj.getStatus())){
mainStatus = WT_APPROVAL;
isMainStatusSet = true;
}
if(!isReturnStatusSet && SEAL_STATUS_BAD.equals(obj.getReturnStatus())){
returnStatus = SEAL_STATUS_BAD;
isReturnStatusSet = true;
}
if(isMainStatusSet && isReturnStatusSet){
break;
}
}
```