Java代码中如何判断实体对象及所有属性是否为空呢?
下文笔者讲述使用java代码检测实体对象及所有属性是否为空的方法分享,如下所示
实现思路:
使用反射遍历所有属性字段
然后对其值进行相应的判断
注意事项:
如果实体类中存在基本数据类型,会影响程序的正确性
例:
package com.java265.object;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
public class TestEntity {
public static void main(String[] args) {
User user1 = new User("Java265.com", "jake",20);
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.java265.object;
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:Java265.com name:null gender:null age:null user1 是否为空:false user2 是否为空:true
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


