如何优雅的判断对象的字段属性值呢?
直接上代码(工具类,拿去就能用)
...
public static boolean allFieldIsNULL(Object source, List<String> excludeNames){
boolean flag = true;
try {
// 取到obj的class, 并取到所有属性
Field[] fs = source.getClass().getDeclaredFields();
// 遍历所有属性
for (Field f : fs) {
// 设置私有属性也是可以访问的
f.setAccessible(true);
// 1.排除不包括的属性名, 2.属性值为空, 3.属性值转换成String为""
if (null != excludeNames){
if(!excludeNames.contains(f.getName())) {
if ((f.get(source) == null || "".equals(f.get(source).toString()))){
flag = false;
break;
}
}
}else {
if ((f.get(source) == null || "".equals(f.get(source).toString()))){
flag = false;
break;
}
}
}
} catch (Exception e) {
log.error("判断对象属性为空异常", e);
}
return flag;
}
...
参数
1.source:需要校验的实体
- excludeNames:不需要校验的属性集合