java 这样的 if ... else .. 怎么优化

java            Integer shi = address.indexOf("市");
            Integer xian = address.indexOf("县");
            Integer qi = address.indexOf("旗");
            Integer meng = address.indexOf("盟");
            Integer qu = address.indexOf("区");
            Integer zhen = address.indexOf("镇");
            Integer xiang = address.indexOf("乡");

            // 市
            if(shi != -1) {

            } else {

                // 县
                if(xian != -1) {

                } else {

                    // 旗
                    if(xian != -1) {

                    } else {

                        // 盟
                        if(xian != -1) {

                        } else {

                            // 区
                            if(xian != -1) {

                            } else {

                                // 镇
                                if(xian != -1) {

                                } else {

                                    // 乡
                                    if(xian != -1) {

                                    } else {

                                    }
                                }
                            }
                        }
                    }
                }
            }
阅读 4k
2 个回答

大概思路是提炼方法,使用return简化else逻辑。

    if(shi != -1){
        //TODO 
        return;
    }

    if(xian != -1){
        //TODO
        return;
    }
    ...

请参见《重构》 第九章节 简化条件表达式:

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题