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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。