Map对象通过反射转化为JavaBean对象转化

来源:互联网 发布:北约 知乎 编辑:程序博客网 时间:2024/05/24 02:48
<span style="font-size:12px;">public static  Object convertMap(Class type, Map map){Object object = null;try {object = type.newInstance();} catch (InstantiationException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IllegalAccessException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//获得对象的所有属性  Field[] fields=type.getDeclaredFields();for(int i=0;i<fields.length;i++){String key = fields[i].getName();String key1 = fields[i].getName();if(key1.equals("zjlx")&& type.equals(CbfVo.class)) {key1 = "cbf"+key1;} if(key1.equals("xb")){key1 = "cyxb";}if(key1.equals("jtgx")){key1 = "yhzgx";}if(key1.equals("sfdmb") && type.equals(CbfJtcy.class)){key1 = "sfgyr";}if(key1.equals("cbf") && type.equals(CbfJtcy.class)){key1 = "cbfbm";}if(key1.equals("zjlx") && type.equals(CbfJtcy.class)){key1 = "cyzjlx";}if(key1.equals("zjlx") && type.equals(Fbf.class)){key1 = "fzrzjlx";}if(map.containsKey(key1.toUpperCase())){String tempKey = key.substring(0,1).toUpperCase()+key.substring(1,key.length());Method method;try { method = type.getMethod("set"+tempKey,new Class[]{fields[i].getType()});Object args[] = new Object[1];args[0] = map.get(key1.toUpperCase());if(fields[i].getType().equals(Double.class)) {method.invoke(object,Double.parseDouble(args[0]+""));} else  if(fields[i].getType().equals(Timestamp.class)) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String d = null;try {d =  f.format(f.parseObject(args[0]+""));} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}Timestamp ts =  Timestamp.valueOf(d);method.invoke(object,ts);} else  if(fields[i].getType().equals(Zjlx.class)) {method.invoke(object,new Zjlx(args[0]+""));}  else  if(fields[i].getType().equals(Cbflx.class)) {method.invoke(object,new Cbflx(args[0]+""));}  else  if(fields[i].getType().equals(Xb.class)) {method.invoke(object,new Xb(args[0]+""));}  else  if(fields[i].getType().equals(Jtgx2.class)) {method.invoke(object,new Jtgx2(args[0]+""));}   else  if(fields[i].getType().equals(Sfdmb.class)) {method.invoke(object,new Sfdmb(args[0]+""));}   else  if(fields[i].getType().equals(Cbf.class)) {method.invoke(object,new Cbf(args[0]+""));} else {method.invoke(object,args);}} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println(fields[i].getName());} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println(fields[i].getName());} catch (InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println(fields[i].getName());}}}return object;}</span>


0 0
原创粉丝点击