public static Object ChangeValByMap(Map<String, Object> map, Object obj) {
if(null == obj){
return null;
}
Class clz = obj.getClass();
Field[] fields = clz.getDeclaredFields();
Set<String> fieldNames = new HashSet<>();
Arrays.stream(fields).forEach(field -> {
fieldNames.add(field.getName());
});
map.forEach(((key, val) -> {
try {
if(fieldNames.contains(key)){
Field field = clz.getDeclaredField(key);
field.setAccessible(true);
if("java.lang.Long".equals(field.getType().getName())){
if( null == val || "".equals(val)){
field.set(obj, null);
} else {
field.set(obj, Long.valueOf(val.toString()));
}
} else if("java.math.BigDecimal".equals(field.getType().getName())){
if( null == val || "".equals(val)){
field.set(obj, null);
} else {
field.set(obj, new BigDecimal(val.toString()));
}
} else {
field.set(obj, val);
}
}
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}));
return obj;
}
通过map更新对象对应字段的值
最新推荐文章于 2023-07-05 19:06:11 发布