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;
    }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值