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

<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 block
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			// TODO Auto-generated catch block
			e1.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 block
							e.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 block
					e.printStackTrace();
				} catch (SecurityException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println(fields[i].getName());
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println(fields[i].getName());
				} catch (InvocationTargetException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println(fields[i].getName());
				}

			}
		}
		return object;
	}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值