在java对象中"null"属性值不太合理,用null来代替会更好
public List<CmsContentDTO> deleteNullData(List<CmsContentDTO> newList){
//反射获取类
Class c = CmsContentDTO.class;
//获取DTO对象的所有定义的属性信息Filed
Field[] fileds = c.getDeclaredFields();
for(int i=0;i<newList.size();i++){
CmsContentDTO cmsContentDTO = newList.get(i);
for(int j=0;j<fileds.length;j++){
Field f = fileds[j];
try {
//对象中的属性是private的需要设置accessible才可用
f.setAccessible(true);
//遍历每个属性值
if("null".equals(f.get(cmsContentDTO))){
//拼接set方法
String methodName = "set" + f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length());
//获取方法
Method method = c.getDeclaredMethod(methodName, f.getType().getCanonicalName().getClass());
//直接给属性赋值null会报空指针
String nullName = null;
//调用方法
method.invoke(cmsContentDTO,nullName);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
return newList;
}