/**
* 恢复对象的部分字段信息
* @param bean 目标对象
* @param mapString 部分字段备份map字符串
*/
public static void restObjectFields(Object bean, String mapString ) {
Map<String,String> args = JSON.parseObject(mapString, new TypeReference<HashMap<String,String>>(){});
for(Field fld : bean.getClass().getDeclaredFields()) {
if(args.containsKey(fld.getName())){
Object value ;
String sval = args.get(fld.getName());
switch(fld.getType().getSimpleName()){
case "LocalDate":
value = LocalDateUtils.toLocalDate(sval);
break;
case "BigDecimal":
value = new BigDecimal(sval);
break;
case "double":
value = BcuConv.toDouble(sval);
break;
case "float":
value = BcuConv.toFloat(sval);
break;
case "int":
value = BcuConv.toInteger(sval);
break;
case "Integer":
value = Integer.parseInt(sval);
break;
case "Long":
value = Long.parseLong(sval);
break;
case "Date":
value = BcuConv.toDate(sval);
break;
default:
value = sval;
break;
}
try {
fld.setAccessible(true);
fld.set(bean, value);
} catch (IllegalAccessException e ){
log.error("更新字段 {} 异常", fld.getName(), e);
}
}
}
}