/** * 把map转成目标实体对象 * * @param map * @param obj */ public static void transMap2Bean(Map<String, Object> map, Object obj, String[] str) { try { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName().toString(); for (String name : str) { if (name.equals(key)) { Object value = map.get(key); // 得到property对应的setter方法 Method setter = property.getWriteMethod(); if (value instanceof BigDecimal || setter.getParameterTypes()[0].toString().contains("java.math.BigDecimal")) { setter.invoke(obj, getBigDecimal(value)); } else if (value instanceof Long || setter.getParameterTypes()[0].toString().contains("java.lang.Long")) { setter.invoke(obj, Long.valueOf(String.valueOf(value))); } else if (value instanceof Boolean || setter.getParameterTypes()[0].toString().contains("java.lang.Boolean")) { setter.invoke(obj, Boolean.valueOf(String.valueOf(value))); } else if (value instanceof Date || setter.getParameterTypes()[0].toString().contains("java.util.Date")) { setter.invoke(obj, DateUtil.convertStringToDate(value.toString())); } else if (value instanceof Integer || setter.getParameterTypes()[0].toString().contains("java.lang.Integer")) { setter.invoke(obj, Integer.valueOf(String.valueOf(value))); } else { setter.invoke(obj, value); } break; } } /* * if (map.containsKey(key) && !"class".equals(key)) { * * } */ } } catch (Exception e) { e.printStackTrace(); System.out.println("transMap2Bean Error " + e); } return; }
添加回答
举报
0/150
提交
取消