避免过多的switch case分支语句,导致增加方法复杂度的措施

    例如,如下场景,switch case分支语句过多:

    /**
     * 获取地市编码对应的地市名称
     *
     * @param cityId 地市编码
     * @return String 地市名称
     */
    public static String getCityName(int cityId) {
        switch (cityId) {
            //苏州
            case GlobalDefine.DATUM_CITY_ID_SZ: {
                return "sz";
            }
            //淮安
            case GlobalDefine.DATUM_CITY_ID_HA: {
                return "hz";
            }
            //宿迁
            case GlobalDefine.DATUM_CITY_ID_SQ: {
                return "sq";
            }
            //南京
            case GlobalDefine.DATUM_CITY_ID_NJ: {
                return "nj";
            }
            //连云港
            case GlobalDefine.DATUM_CITY_ID_LYG: {
                return "lyg";
            }
            //徐州
            case GlobalDefine.DATUM_CITY_ID_XZ: {
                return "xz";
            }
            //常州
            case GlobalDefine.DATUM_CITY_ID_CZ: {
                return "cz";
            }
            //镇江
            case GlobalDefine.DATUM_CITY_ID_ZJ: {
                return "zj";
            }
            //无锡
            case GlobalDefine.DATUM_CITY_ID_WX: {
                return "wx";
            }
            //南通
            case GlobalDefine.DATUM_CITY_ID_NT: {
                return "nt";
            }
            //泰州
            case GlobalDefine.DATUM_CITY_ID_TZ: {
                return "tz";
            }
            //盐城
            case GlobalDefine.DATUM_CITY_ID_YC: {
                return "yc";
            }
            //扬州
            case GlobalDefine.DATUM_CITY_ID_YZ: {
                return "yz";
            }
            //所有地市
            case GlobalDefine.DATUM_CITY_ALL: {
                return "all";
            }
            default:
                return "";
        }
    }
     使用HashMap来解决switch case 分支语句过多的情况

    /**
     * 获取地市编码对应的地市名称
     *
     * @param cityId 地市编码
     * @return String 地市名称
     */
    public static String getCityName(int cityId) {

        Map<Short, String> cityMap = new HashMap<Short, String>();
        //苏州
        cityMap.put(GlobalDefine.DATUM_CITY_ID_SZ, "sz");

        //淮安
        cityMap.put(GlobalDefine.DATUM_CITY_ID_HA, "ha");

        //宿迁
        cityMap.put(GlobalDefine.DATUM_CITY_ID_SQ, "sq");

        //南京
        cityMap.put(GlobalDefine.DATUM_CITY_ID_NJ, "nj");

        //连云港
        cityMap.put(GlobalDefine.DATUM_CITY_ID_LYG, "lyg");

        //徐州
        cityMap.put(GlobalDefine.DATUM_CITY_ID_XZ, "xz");

        //常州
        cityMap.put(GlobalDefine.DATUM_CITY_ID_CZ, "cz");

        //镇江
        cityMap.put(GlobalDefine.DATUM_CITY_ID_ZJ, "zj");

        //无锡
        cityMap.put(GlobalDefine.DATUM_CITY_ID_WX, "wx");

        //南通
        cityMap.put(GlobalDefine.DATUM_CITY_ID_NT, "nt");

        //泰州
        cityMap.put(GlobalDefine.DATUM_CITY_ID_TZ, "tz");

        //盐城
        cityMap.put(GlobalDefine.DATUM_CITY_ID_YC, "yc");

        //扬州
        cityMap.put(GlobalDefine.DATUM_CITY_ID_YZ, "yz");

        //所有地市
        cityMap.put(GlobalDefine.DATUM_CITY_ALL, "all");

        if (cityMap.containsKey((short) cityId)) {
            return cityMap.get((short) cityId);
        } else {
            return "cityId is error and not find this cityName by cityId";
        }
    }

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值