Java 判斷實體對象及所有屬性是否為空的操作
1、判斷實體對象是否為空
2、判斷對象所有屬性是否為空
3、特別注意,實體類中如果有基本數(shù)據(jù)類型,會影響判斷
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; /** * 如果屬性類型為基本數(shù)據(jù)類型,則會有默認值 * 影響正確判斷,請?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:Jackname:nullgender:nullage:nulluser1 是否為空:falseuser2 是否為空:true
補充知識:Java判斷一個實體類對象實例的所有成員變量是否為空
看代碼吧~
/** *判斷一個實體類對象實例的所有成員變量是否為空 *@param obj 校驗的類對象實例 *@return List *@throws Exception */public static List<String> isObjectFieldEmpty(Object obj) throws Exception { Class<?> clazz=obj.getClass(); //得到類對象 Field[] fs=clazz.getDeclareFields(); //得到屬性集合 List<String> list=new ArrayList<String>(); for(Field field:fs){ //遍歷屬性 field.setAccessible(true); //設(shè)置屬性是可以訪問的(私有的也可以) if(field.get(obj)==null||field.get(obj)==''||'null'.equalsIngnoreCase(String)field.get(obj))){ String name=(String)field.getName(); list.add(name); } } return list;}
以上這篇Java 判斷實體對象及所有屬性是否為空的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
