反射方式
Introspector 方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public static Object convertMap(Class type, Map map) throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException { BeanInfo beanInfo = Introspector.getBeanInfo(type); Object obj = type.newInstance();
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (int i = 0; i< propertyDescriptors.length; i++) { PropertyDescriptor descriptor = propertyDescriptors[i]; String propertyName = descriptor.getName();
if (map.containsKey(propertyName)) { Object value = map.get(propertyName);
Object[] args = new Object[1]; args[0] = value;
descriptor.getWriteMethod().invoke(obj, args); } } return obj; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
private static ResourcesBean mapToObject(Map<String, Object> map, String ObjectBeanPath) { ResourcesBean resourcesBean = new ResourcesBean(); try { Class clazz = Class.forName(ObjectBeanPath); for (Map.Entry<String, Object> entry : map.entrySet()) { Field filed = clazz.getDeclaredField(entry.getKey()); filed.setAccessible(true); filed.set(resourcesBean, entry.getValue() != null ? String .valueOf(entry.getValue()) : ""); } } catch (Exception e) { log.error(e); } return resourcesBean; }
|
| 530277 | 79773174 | 1 | 1 | 4 |