首页 > 开发 > JAVA > 正文

java如何消除繁琐的if else 语句?

2017-09-07 09:23:52  来源:网友分享

求助:一堆的if else 嵌套

private Map versionCheck(Map mapParam) {    Map msg = new HashMap();    if(!"".equals(PMSUtil.isNull(mapParam.get("IS_INTERNET")))){      String checkVersion =SystemGlobals.getProperty("IS_CHECK");      if("1".equals(checkVersion)){          String versions =SystemGlobals.getProperty("VERSION");          String version =PMSUtil.isNull(mapParam.get("VERSION"));          String taxRegisterNo=PMSUtil.isNull(mapParam.get(""));          String whiteList =SystemGlobals.getProperty("NO_CHECK_TAX_REGISTER_NO");          if((","+whiteList+",").indexOf((","+taxRegisterNo+","))==-1){              if((","+versions+",").indexOf(","+version+",")==-1){//找不到                  msg.put("RESULT", "0001");                  msg.put("MSG", "FAILD");              }else{                 msg.put("RESULT", ""0000"");              }          }else{            msg.put("RESULT", ""0000"");          }      }else{          msg.put("RESULT", ""0000"");      }    }else{        msg.put("RESULT", ""0000"");    }    return msg;}

解决方案

楼主就不要用你那山寨的 PMSUtil 了吧,直接上 org.apache.commons.lang.StringUtils

 private Map versionCheck(Map mapParam) {        Map msg = new HashMap();        msg.put("RESULT", "0000");        String isInternet = (String) mapParam.get("IS_INTERNET");        if (StringUtils.isBlank(isInternet)) {            return msg;        }        String isCheck = SystemGlobals.getProperty("IS_CHECK");        if (!StringUtils.equals(isCheck, "1")) {            return msg;        }        String globalVersions = SystemGlobals.getProperty("VERSION");        String currentVersion = (String) mapParam.get("VERSION");        if (!StringUtils.contains("," + globalVersions + ",", "," + currentVersion + ",")) {            return msg;        }        String whiteList = SystemGlobals.getProperty("NO_CHECK_TAX_REGISTER_NO");        String taxRegisterNo = (String) mapParam.get("");        if (!StringUtils.contains("," + whiteList + ",", "," + taxRegisterNo + ",")) {            msg.put("RESULT", "0001");            msg.put("MSG", "FAILD");            return msg;        }        return Collections.emptyMap();    }