Java 判斷實(shí)體對(duì)象及所有屬性是否為空的操作
1、判斷實(shí)體對(duì)象是否為空
2、判斷對(duì)象所有屬性是否為空
3、特別注意,實(shí)體類(lèi)中如果有基本數(shù)據(jù)類(lèi)型,會(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í)體類(lèi):
package com.liuxd.object; /** * Created by Liuxd on 2018/11/2. */public class User { private String name; private String gender; /** * 如果屬性類(lèi)型為基本數(shù)據(jù)類(lèi)型,則會(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:Jackname:nullgender:nullage:nulluser1 是否為空:falseuser2 是否為空:true
補(bǔ)充知識(shí):Java判斷一個(gè)實(shí)體類(lèi)對(duì)象實(shí)例的所有成員變量是否為空
看代碼吧~
/** *判斷一個(gè)實(shí)體類(lèi)對(duì)象實(shí)例的所有成員變量是否為空 *@param obj 校驗(yàn)的類(lèi)對(duì)象實(shí)例 *@return List *@throws Exception */public static List<String> isObjectFieldEmpty(Object obj) throws Exception { Class<?> clazz=obj.getClass(); //得到類(lèi)對(duì)象 Field[] fs=clazz.getDeclareFields(); //得到屬性集合 List<String> list=new ArrayList<String>(); for(Field field:fs){ //遍歷屬性 field.setAccessible(true); //設(shè)置屬性是可以訪(fǎng)問(wèn)的(私有的也可以) 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 判斷實(shí)體對(duì)象及所有屬性是否為空的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
