Java 判斷實體對象及所有屬性是否為空的操作
更新時間:2020年12月08日 11:12:10 作者:春風(fēng)化作秋雨
這篇文章主要介紹了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ù)類型,則會有默認(rèn)值
* 影響正確判斷,請?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
補(bǔ)充知識: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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java反射機(jī)制,如何將一個實體類所有字段賦值為null
這篇文章主要介紹了Java反射機(jī)制,如何將一個實體類所有字段賦值為null,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
IntelliJ IDEA中如何構(gòu)建Spring Boot的項目
這篇文章主要介紹了IntelliJ IDEA中如何構(gòu)建Spring Boot的項目問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot+Mybatis項目使用Redis做Mybatis的二級緩存的方法
本篇文章主要介紹了SpringBoot+Mybatis項目使用Redis做Mybatis的二級緩存的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12

