记录一下,通过反射修改对象列表里对象的字段值。
后端接口调用大数据的接口,大数据返回的数据没有处理,有些字段是 "空","null", 这样的类型,需要处理一下,要是一个一个字段的去替换,如果字段太多很麻烦,所以用反射
/**
* 处理大数据接口返回数据里面字段的 "空","null" 值, 转换为 ""
* @param list 要处理的数据集合
* @param <T> 返回的数据集合
* @return
*/
public static <T> List replaceBlankValue(List<T> list){
if (!CollectionUtils.isEmpty(list)){
for (T item : list) {
//获取所有字段 除serialVersionUID
Field[] fields = item.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String fieldName = field.getName();
if ("serialVersionUID".equals(fieldName)){
continue;
}
try {
//获取字段值
Object s = field.get(item);
if (ObjectUtils.isNotNull(s)){
String s1 = s.toString();
if (StringUtils.isNotEmpty(s1) && ("空".equals(s1) || "null".equalsIgnoreCase(s1))){
//设置字段值为 ""
field.set(item,"");
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
return list;
}