public boolean checkObjAllFieldsIsNull(Object object) {
// 如果对象为null直接返回true
if (null == object) {
return true;
}
try {
// 挨个获取对象属性值
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
// 如果有一个属性值不为null,且值不是空字符串,就返回false
if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
如果持久层用的是 MyBatis-Plus 框架,上面的代码会一直返回 false,这时候需要先在需要判断的实力类对象中加入 serialVersionUID 全局参数
private static final long serialVersionUID = 1L;
再使用下面的代码:
import java.lang.reflect.Field;
/**
* 判断实体类对象的属性值是否全部为空
* @param object
* @return
*/
public boolean checkObjAllFieldsIsNull(Object object) {
// 如果对象为null直接返回true
if (null == object) {
return true;
}
try {
// 挨个获取对象属性值
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
// 如果属性名不为serialVersionUID,有一个属性值不为null,且值不是空字符串,就返回false
if (!"serialVersionUID".equals(f.getName()) &&
f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}