1、map转对象
private static <T> T mapT(Map<String, Object> map, Class<T> tClass) throws IllegalAccessException, InstantiationException {
T instance = tClass.newInstance();//创建一个实列
System.out.println(tClass.getName());
if (map != null && !map.isEmpty() && map.size() > 0) {
Field[] fields = tClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String name = field.getName();
Object o = map.get(name);
if (o != null && StringUtils.isNotBlank(o.toString())) {
String typeName = field.getGenericType().getTypeName(); //获取字段类型
System.out.println(typeName);
if (Long.class.getName().equals(typeName) || long.class.getName().equals(typeName)) {
field.set(instance, Long.parseLong(o.toString()));
} else if (Integer.class.getName().equals(typeName) || int.class.getName().equals(typeName)) {
field.set(instance, Integer.parseInt(o.toString()));
} else if (Float.class.getName().equals(typeName) || float.class.getName().equals(typeName)) {
field.set(instance, Float.parseFloat(o.toString()));
} else if (Double.class.getName().equals(typeName) || double.class.getName().equals(typeName)) {
field.set(instance, Double.parseDouble(o.toString()));
} else {
field.set(instance, o);
}
}
}
}
return (T) instance;
}
2、对象转map
/**
* 对象转map
* @param obj
* @return
*/
private static Map<String, Object> objToMap(Object obj) {
Map<String, Object> map = new HashMap<String, Object>();
Field[] fields = obj.getClass().getDeclaredFields(); // 获取f对象对应类中的所有属性域
for (int i = 0, len = fields.length; i < len; i++) {
String varName = fields[i].getName();
varName = varName.toLowerCase(); // 将key置为小写,默认为对象的属性
try {
boolean accessFlag = fields[i].isAccessible(); // 获取原来的访问控制权限
fields[i].setAccessible(true); // 修改访问控制权限
Object o = fields[i].get(obj); // 获取在对象f中属性fields[i]对应的对象中的变量
if (o != null){
map.put(varName, o.toString());
}
fields[i].setAccessible(accessFlag); // 恢复访问控制权限
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
return map;
}
参考文章:https://blog.csdn.net/m0_67402564/article/details/126726750