直辖市输入省或者输入省市代表的效果一样,但传入时候输入这两种查询的效果不同
就当一个小练习了 import com.fsni.common.utils.StringUtilPlus; import com.fsni.res.api.entity.AdministrativeOrg; import java.lang.reflect.Method; /** * Project Name:review_java <br/> * Package Name:com.nasus.generic.how <br/> * Date:2019/12/28 21:46 <br/> * * @author <a href="turodog@foxmail.com">chenzy</a><br/> */ public class AreaUtil { public static <T> T AreaConversion(T t, Class clazz) { Method getProvince; Method getDistrict; try { getProvince = clazz.getMethod("getProvince"); String province = (String) getProvince.invoke(t); getDistrict = clazz.getMethod("getDistrict"); String district = (String) getDistrict.invoke(t); if ((province.startsWith("上海") || province.startsWith("天津") || province.startsWith("北京") || province.startsWith("重庆")) && StringUtilPlus.isEmpty(district)) {//当为直辖市时候当只有省或者有省和市的时候查询结果应一样 Method setCity = clazz.getDeclaredMethod("setCity", String.class); setCity.setAccessible(true); setCity.invoke(t, ""); } } catch (Exception e) { e.printStackTrace(); } return t; } public static void main(String[] args) { AdministrativeOrg administrativeOrg = new AdministrativeOrg(); administrativeOrg.setProvince("北京"); administrativeOrg.setCity("北京市"); administrativeOrg.setDistrict(""); AdministrativeOrg show = AreaUtil.AreaConversion(administrativeOrg, AdministrativeOrg.class); System.out.println("show.getProvince() = " + show.getProvince()); System.out.println("show.getCity() = " + show.getCity()); } }