java反射的应用省市区赋值问题
前天搞了下省市区
发现不是存省市区就是存省市区的code值
而前端一般只有存code或者中文
很少两个值并存,
本来vue接触的少
(自己的前端水平也是喳喳的存在)
萌生了写个后台工具类想法
实现目标
code能够转成对应的中文省市区
中文省市区能够转化code
因为尽量要写的通用化一点
所以所有有关于省市区的类都要能够调用
想到这里,我突然发现好像反射里面有这个东西
就简单的写了个工具类
首先
先准备两个map
域名 是code value是 省市区
350000:福建省,351000某某市,351001某某区键值对
域名 是(省份默认是0)父级id+省市区 value是code
//0福建省350000,350000某某市351000,351000某某区351001键值对
然后主要代码,主要是分两种
/**
* 设置省市区code 或者设置
* @param obj 需要设置省市区的实体
* @param map 需要翻译的map值
* @param type 需要执行的类型
* @return
*/
public static void setAddress(Object obj, Map<String,String> map, String type){
Class c = 域名lass();
/*
* 2.获取方法 名称和参数列表来决定 getMethod获取的是public的方法 getDelcaredMethod自己声明的方法
*/
try {
//code 转 省份
if(域名ls(type)){
Method mProvince = 域名ethod(“getProvince” );
Object oProvince = 域名ke(obj);
Method mProvinceName = 域名ethod(“setProvinceName”, 域名s);
if(oProvince!=null){
域名ke(obj,域名(域名ring()));
}
Method mCity = 域名ethod(“getProvince” );
Object oCity = 域名ke(obj);
Method mCityName = 域名ethod(“setProvinceName”, 域名s);
if(oCity!=null){
域名ke(obj,域名(域名ring()));
}
Method mArea = 域名ethod(“getProvince” );
Object oArea= 域名ke(obj);
Method mAreaName = 域名ethod(“setProvinceName”, 域名s);
if(oArea!=null){
域名ke(obj,域名(域名ring()));
}
}
// 省份转 code
if(域名ls(type)){
Method mProvince = 域名ethod(“getProvinceName” );
Object oProvince = 域名ke(obj);
Method mProvinceCode = 域名ethod(“setProvince”, 域名s);
String provinceCode=域名(域名ZERO +域名ring());
if(oProvince!=null){
域名ke(obj,provinceCode);
}
Method mCity = 域名ethod(“getCityName” );
Object oCity = 域名ke(obj);
Method mCityName = 域名ethod(“setCity”, 域名s);
String cityCode=域名(provinceCode+域名ring());
if(oCity!=null){
域名ke(obj,cityCode);
}
Method mArea = 域名ethod(“getAreaName” );
Object oArea= 域名ke(obj);
Method mAreaName = 域名ethod(“setArea”, 域名s);
String areaCode=域名(cityCode+域名ring());
if(oArea!=null){
域名ke(obj,areaCode);
}
}
} catch (Exception e) {
域名tStackTrace();
}
}
调用方法
域名ddress(sysUserDetatil,域名ESS_NAME_MAP,域名TWO);
大概就是这么回事