Java 判斷實體物件及所有屬性是否為空
阿新 • • 發佈:2018-11-11
1、判斷實體物件是否為空
2、判斷物件所有屬性是否為空
3、特別注意,實體類中如果有基本資料型別,會影響判斷
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); } /** * 判斷物件中屬性值是否全為空 * * @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; } }
實體類:
package com.liuxd.object; /** * Created by Liuxd on 2018/11/2. */ public class User { private String name; private String gender; /** * 如果屬性型別為基本資料型別,則會有預設值 * 影響正確判斷,請特別注意 */ // 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; } }
輸出結果:
name:Jack
name:null
gender:null
age:null
user1 是否為空:false
user2 是否為空:true