这里作为(II)的第二个续篇,继续复杂的嵌套if else 的处理。 为了保持篇幅不会太长,以一篇新的文章形式给出。
化简复杂的if else语句,基本的手段
这里给出最后一个举例,也是从网上随便搜索摘录的
List<TWorkFlowwork> wfwList=errorProcessingService.findWorkFlowworkByWorkType("7",workbillcode.getId()+""); boolean flag=false; if(wfwList!=null&&wfwList.size()>0){ for(int i=0;i<wfwList.size();i++){ TWorkFlowwork wfw=wfwList.get(i); if(wfw!=null){//当前待办是原件校验并且如果已经结束了则激活原件校验待办 if(wfw.getStatus()!=null&&!"".equals(wfw.getStatus())){ if("1".equals(wfw.getStatus())){ flag=true; break; } } } } if(!flag){//如果原件校验待办都结束了,则产生一条原件校验待办 TWorkBillcode wb=errorProcessingService.findWorkBillcodeByParameters(flow.getBussid(),flow.getBusstype()); wb.setIsmatchpage("1"); errorProcessingService.updateWorkBillcode(wb); } }
if(wfw.getStatus()!=null&&!"".equals(wfw.getStatus()) && "1".equals(wfw.getStatus())){ flag=true; break; }仔细分析,不难发现wfw.getStatus()!=null&&!"".equals(wfw.getStatus()) 根本是多余的。
List<TWorkFlowwork> wfwList=errorProcessingService.findWorkFlowworkByWorkType("7",workbillcode.getId()+""); boolean flag=false; if(wfwList==null || wfwList.size()==0) { return; } for (TWorkFlowwork wfw : wfwList) { //当前待办是原件校验并且如果已经结束了则激活原件校验待办 if (wfw == null) { continue; } if("1".equals(wfw.getStatus())){ flag=true; break; } } if(!flag){//如果原件校验待办都结束了,则产生一条原件校验待办 TWorkBillcode wb=errorProcessingService.findWorkBillcoHideByParameters(flow.getBussid(),flow.getBusstype()); wb.setIsmatchpage("1"); errorProcessingService.updateWorkBillcode(wb); }
原文:http://blog.csdn.net/crylearner/article/details/39138741