1喇颁、判斷實(shí)體對(duì)象是否為空
2阱缓、判斷對(duì)象所有屬性是否為空
3戳护、特別注意金抡,實(shí)體類中如果有基本數(shù)據(jù)類型瀑焦,會(huì)影響判斷
package com.liuxd.object;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
/**
* Created by Liuxd on 2018/11/2.
*/
public class TestEntity {
public static void main(String[] args) {
User user1 = new User("Jack", "male", 17);
User user2 = new User();
boolean u1Flag = checkObjAllFieldsIsNull(user1);
boolean u2Flag = checkObjAllFieldsIsNull(user2);
System.out.println("user1 是否為空:" + u1Flag);
System.out.println("user2 是否為空:" + u2Flag);
}
/**
* 判斷對(duì)象中屬性值是否全為空
*
* @param object
* @return
*/
public static boolean checkObjAllFieldsIsNull(Object object) {
if (null == object) {
return true;
}
try {
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
System.out.print(f.getName() + ":");
System.out.println(f.get(object));
if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}
實(shí)體類:
/**
* Created by Liuxd on 2018/11/2.
*/
public class User {
private String name;
private String gender;
/**
* 如果屬性類型為基本數(shù)據(jù)類型,則會(huì)有默認(rèn)值
* 影響正確判斷梗肝,請(qǐng)?zhí)貏e注意
*/
// private int age;
private Integer age;
public User() {
}
public User(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
輸出結(jié)果:
name:Jack
name:null
gender:null
age:null
user1 是否為空:false
user2 是否為空:true