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 <T>
|
* @return
|
*/
|
public static <T> T convertMapToObj(Map<String, Object> map, Class<T> clazz) {
|
try {
|
T obj = clazz.newInstance();
|
for (Map.Entry<String, Object> 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<String, Object> toReplaceKeyLow(Map<String, Object> map) {
|
Map reMap = new HashMap();
|
|
if (map != null) {
|
Iterator var2 = map.entrySet().iterator();
|
|
while (var2.hasNext()) {
|
Map.Entry<String, Object> 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();
|
}
|
|
|
}
|