java Map2Bean 和 bean2Map 互相轉換

package com.cykj.initializecommon.util;

import com.alibaba.fastjson.JSON;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class MapUtil {
    public static Map<String, Object> object2Map(Object obj) {
        Map<String, Object> map = new HashMap();
        if (obj == null) {
            return map;
        } else {
            Class clazz = obj.getClass();
            Field[] fields = clazz.getDeclaredFields();

            try {
                Field[] var4 = fields;
                int var5 = fields.length;

                for(int var6 = 0; var6 < var5; ++var6) {
                    Field field = var4[var6];
                    field.setAccessible(true);
                    map.put(field.getName(), field.get(obj));
                }
            } catch (Exception var8) {
                var8.printStackTrace();
            }

            return map;
        }
    }

    public static Object bean2Bean(Object obj1, Object obj2) throws Exception {
        Map<String, Object> reMap = object2Map(obj1);
        Map<String, Object> map = object2Map(obj2);
        map.forEach((k, v) -> {
            if (v != null && !strIsNull(v.toString())) {
                reMap.put(k, v);
            }

        });
        return map2Object(reMap, obj1.getClass());
    }

    public static Object map2Object(Map<String, Object> map, Class<?> clazz) throws Exception {
        if (map == null) {
            return null;
        } else {
            Object obj = null;

            try {
                obj = clazz.newInstance();
                Field[] fields = obj.getClass().getDeclaredFields();
                Field[] var4 = fields;
                int var5 = fields.length;

                for(int var6 = 0; var6 < var5; ++var6) {
                    Field field = var4[var6];
                    int mod = field.getModifiers();
                    if (!Modifier.isStatic(mod) && !Modifier.isFinal(mod)) {
                        field.setAccessible(true);
                        if (field.getType().toString().contains("Integer") && map.get(field.getName()) != null) {
                            field.set(obj, Integer.parseInt(map.get(field.getName()).toString()));
                        } else if (field.getType().toString().contains("String") && map.get(field.getName()) != null) {
                            field.set(obj, map.get(field.getName()) == null ? null : map.get(field.getName()).toString());
                        } else {
                            field.set(obj, map.get(field.getName()));
                        }
                    }
                }
            } catch (Exception var9) {
                var9.printStackTrace();
            }

            return obj;
        }
    }

    public static String comparingByCreateTime(Map<String, Object> map) {
        return (String)map.get("createTime");
    }

    public static Map<String, Object> listToPage(List<?> list, Integer page, Integer pageSize) {
        Map<String, Object> reMap = new HashMap();
        reMap.put("list", list.stream().skip((long)((page - 1) * pageSize)).limit((long)pageSize).collect(Collectors.toList()));
        reMap.put("total", list.size());
        return reMap;
    }

    public static boolean strIsNull(String s) {
        return s == null || s.isEmpty();
    }

    public static <T> T getPerson(String jsonString, Class cls) {
        T t = null;
        try {
            t = (T) JSON.parseObject(jsonString, cls);
        } catch (Exception e) {
            // TODO: handle exception
        }
        return t;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章