写在最前面的总结
在开发过程中由于各种原因,经常用到的map和对象之间的转换,以下通用的方法可以提高开发效率。
将Object对象里面的属性和值转化成Map对象
public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {
Map<String, Object> map = new HashMap<String, Object>();
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
field.setAccessible(true);
String fieldName = field.getName();
Object value = field.get(obj);
map.put(fieldName, value);
}
return map;
}
将Map对象转化成对象
public static <T> T mapToObejct(Map<String,Object> map, Class<T> beanClass) throws Exception{
if(CollectionUtil.isEmpty(map)){
return null;
}
T t = beanClass.newInstance();
Field[] fields = t.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}
field.setAccessible(true);
field.set(t,map.get(field.getName()));
}
return t;
}