一个对象的属性 既有 空字符串又有null,使用StringUtils.isBlank是判断不出来的
所以参考其他代码,自己封装了个方法,代码如下:
/**
* 判断Object对象为空或空字符串
* @param obj
* @return true为空 false非空
*/
public static boolean isAllFieldNull(Object obj){
boolean flag = false;
try {
// 得到类对象
Class stuCla = (Class) obj.getClass();
//得到属性集合 ,getFields()只能获取public的字段,包括父类的。而getDeclaredFields()只能获取自己声明的各种字段,
//包括public,protected,private。
Field[] fs = stuCla.getDeclaredFields();
int blankCount = 0;
//遍历属性
for (Field f : fs) {
//序列化处理
if ("serialVersionUID".equals(f.getName())) {
blankCount++;
}
// 设置属性是可以访问的(私有的也可以)
f.setAccessible(true);
// 得到此属性的值
Object val = f.get(obj);
//计数 属性为空个数
if (isBlank(val)) {
blankCount++;
}
}
if (blankCount ==fs.length){
flag = true;
}
}catch (Exception e){
return false;
}
return flag;
}