例如,如下场景,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";
}
}