作者 朱兆平

增加实体转换成map

  1 +package com.tianbo.util.Bean;
  2 +
  3 +import java.lang.reflect.Field;
  4 +import java.lang.reflect.Modifier;
  5 +import java.util.HashMap;
  6 +import java.util.Map;
  7 +
  8 +public class Bean2Map {
  9 + /**
  10 + * 实体对象转成Map
  11 + * @param obj 实体对象
  12 + * @return
  13 + */
  14 + public static Map<String, Object> object2Map(Object obj) {
  15 + Map<String, Object> map = new HashMap<>();
  16 + if (obj == null) {
  17 + return map;
  18 + }
  19 + Class clazz = obj.getClass();
  20 + Field[] fields = clazz.getDeclaredFields();
  21 + try {
  22 + for (Field field : fields) {
  23 + field.setAccessible(true);
  24 + map.put(field.getName(), field.get(obj));
  25 + }
  26 + } catch (Exception e) {
  27 + e.printStackTrace();
  28 + }
  29 + return map;
  30 + }
  31 + /**
  32 + * Map转成实体对象
  33 + * @param map map实体对象包含属性
  34 + * @param clazz 实体对象类型
  35 + * @return
  36 + */
  37 + public static Object map2Object(Map<String, Object> map, Class<?> clazz) {
  38 + if (map == null) {
  39 + return null;
  40 + }
  41 + Object obj = null;
  42 + try {
  43 + obj = clazz.newInstance();
  44 +
  45 +
  46 + Field[] fields = obj.getClass().getDeclaredFields();
  47 + for (Field field : fields) {
  48 + int mod = field.getModifiers();
  49 + if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
  50 + continue;
  51 + }
  52 + field.setAccessible(true);
  53 + field.set(obj, map.get(field.getName()));
  54 + }
  55 + } catch (Exception e) {
  56 + e.printStackTrace();
  57 + }
  58 + return obj;
  59 + }
  60 +
  61 +}