对于过多if-else分支的优化

场景1:equals判断

int code;
if("Name".equals(str))
    code = 0;
else if("Age".equals(str))
    code = 1;
else if("Address".equals(str))
    code = 2;
...

可以用Map进行优化:

Map typeCodeMap = new HashMap();
typeCodeMap.put("Name", 0);
typeCodeMap.put("Age", 1);
typeCodeMap.put("Address", 2);
...
int code = typeCode.get(type);

场景2: 判断多个变量是否为空

        if (StringUtils.isBlank(a)) {
            response.setSuccess(false);
            response.setMessage("a can not be null");
        } else if (StringUtils.isBlank(b)) {
            response.setSuccess(false);
            response.setMessage("b can not be null");
        } else if (StringUtils.isBlank(c)) {
            response.setSuccess(false);
            response.setMessage("c can not be null");
        } else if (StringUtils.isBlank(d)) {
            response.setSuccess(false);
            response.setMessage("d can not be null");
        } else if (StringUtils.isBlank(e)) {
            response.setSuccess(false);
            response.setMessage("e can not be null");
        } 

用Map进行优化:

        Map<String, String> paramMap = new HashMap<>(5);
        paramMap.put("a", a);
        paramMap.put("b", b);
        paramMap.put("c", c);
        paramMap.put("d", d);
        paramMap.put("e", e);
        for (Map.Entry<String, String> entry : paramMap.entrySet()) {
            if (StringUtils.isBlank(entry.getValue())) {
                response.setSuccess(false);
                response.setMessage(entry.getKey() + " can not be null");
                return response;
            }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据仓库中的SQL性能优化(Hive篇) - 简书 http://www.jianshu.com/p/808a5...
    葡萄喃喃呓语阅读 4,637评论 0 31
  • 题目有一组未知数量与值的数字,要求把他们分成三份, 使每份的和尽量相等. 思路 对数组进行降序排序 创建三个数组,...
    wudimingwo阅读 504评论 0 0
  • 开发中使用到if-else是再正常不过的了,如果需要判断的条件比较少,使用少量的if-else是最简单不过的,但是...
    小尾巴1024阅读 2,024评论 1 4
  • 我不再说我的身体有多好多好了,以前老人说:如果你说自己从来没有生过病,过不了几天绝对会生病。好像很多人都被说中了。...
    柏云归来阅读 203评论 2 1
  • 1.她站在众人面前,嫣然一笑,让所有人失神,她伸出纤纤素手拔下头上的金簪、“嘶......”哪一张倾国倾城的容颜在...
    Cold易笙阅读 687评论 0 3