java中map跟对象的互转,话不多说,直接上code
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Map;
/**
* @BelongsProject: stage3-cmis-itm
* @BelongsPackage:
* @Author: zhousc
* @CreateTime: 2023-02-13 17:21
* @Description: TODO
* @Version: 1.0
*/
public class BeanMapUtilByReflect {
/**
* 对象转Map
* @param object
* @return
* @throws IllegalAccessException
*/
public static Map beanToMap(Object object) throws IllegalAccessException {
Map<String, Object> map = new HashMap<String, Object>();
Field[] fields = object.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
map.put(field.getName(), field.get(object));
}
return map;
}
/**
* map转对象
* @param map
* @param beanClass
* @param <T>
* @return
* @throws Exception
*/
public static <T> T mapToBean(Map map, Class<T> beanClass) throws Exception {
T object = beanClass.newInstance();
Field[] fields = object.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
field.setAccessible(true);
if (map.containsKey(field.getName())) {
field.set(object, map.get(field.getName()));
}
}
return object;
}
}
完事,觉得有帮助的小伙伴,留下你的点赞和关注吧,O(∩_∩)O哈哈~

该代码片段展示了如何使用Java反射API将对象转换为Map以及将Map反向转换回对象。方法处理了字段的可访问性,并跳过了静态和final字段。
1983

被折叠的 条评论
为什么被折叠?



