package com.consum.base.core.utils; import cn.hutool.core.util.ReflectUtil; import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @Slf4j public class MapUtils { public static final char UNDERLINE = '_'; /** * 把map转换成对象 * * @param map * @param clazz * @param * @return */ public static T convertMapToObj(Map map, Class clazz) { try { T obj = clazz.newInstance(); for (Map.Entry entry : map.entrySet()) { Field field = clazz.getDeclaredField(entry.getKey()); // field.setAccessible(true); // field.set(obj, entry.getValue()); ReflectUtil.setFieldValue(obj, field, entry.getValue()); } return obj; } catch (InstantiationException | IllegalAccessException | NoSuchFieldException e) { log.error(e.getMessage(), e); } return null; } /** * 把map的key转换成驼峰命名 * * @param map * @return */ public static Map toReplaceKeyLow(Map map) { Map reMap = new HashMap(); if (map != null) { Iterator var2 = map.entrySet().iterator(); while (var2.hasNext()) { Map.Entry entry = (Map.Entry) var2.next(); reMap.put(underlineToCamel(entry.getKey()), map.get(entry.getKey())); } map.clear(); } return reMap; } /** * 将下划线转为驼峰格式 * * @param param * @return */ public static String underlineToCamel(String param) { if (param == null || "".equals(param.trim())) { return ""; } int len = param.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = param.charAt(i); if (c == UNDERLINE) { if (++i < len) { sb.append(Character.toUpperCase(param.charAt(i))); } } else { sb.append(Character.toLowerCase(param.charAt(i))); } } return sb.toString(); } }