Java 判断实体对象及所有属性是否为空的操作

 更新时间:2020年12月08日 11:12:10   作者:春风化作秋雨  
这篇文章主要介绍了Java 判断实体对象及所有属性是否为空的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1、判断实体对象是否为空

2、判断对象所有属性是否为空

3、特别注意,实体类中如果有基本数据类型,会影响判断

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;
 
 /**
 * 如果属性类型为基本数据类型,则会有默认值
 * 影响正确判断,请特别注意
 */
// 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:Jack
name:null
gender:null
age:null
user1 是否为空:false
user2 是否为空: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); //设置属性是可以访问的(私有的也可以)
   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 判断实体对象及所有属性是否为空的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java并发之AtomicInteger源码分析

    java并发之AtomicInteger源码分析

    AtomicInteger是java并发包下面提供的原子类,主要操作的是int类型的整型,通过调用底层Unsafe的CAS等方法实现原子操作。下面小编和大家一起学习一下
    2019-05-05
  • SpringBoot对静态资源的映射规则详解解读

    SpringBoot对静态资源的映射规则详解解读

    这篇文章主要介绍了SpringBoot对静态资源的映射规则详解解读,在Spring Boot中,映射规则是用来定义URL与控制器方法之间的映射关系的,通过映射规则,可以将特定的URL请求映射到相应的控制器方法上,从而实现请求的处理和响应的返回,需要的朋友可以参考下
    2023-10-10
  • springboot集成普罗米修斯(Prometheus)的方法

    springboot集成普罗米修斯(Prometheus)的方法

    这篇文章主要介绍了springboot集成普罗米修斯(Prometheus)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 使用@value注解取不到application.xml配置文件中的值问题

    使用@value注解取不到application.xml配置文件中的值问题

    这篇文章主要介绍了使用@value注解取不到application.xml配置文件中的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • springboot publish event 事件机制demo分享

    springboot publish event 事件机制demo分享

    这篇文章主要介绍了springboot publish event 事件机制demo,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Mybatis返回单个实体或者返回List的实现

    Mybatis返回单个实体或者返回List的实现

    这篇文章主要介绍了Mybatis返回单个实体或者返回List的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 解决Mybatis-Plus更新方法不更新NULL字段的问题

    解决Mybatis-Plus更新方法不更新NULL字段的问题

    这篇文章主要介绍了解决Mybatis-Plus更新方法不更新NULL字段的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 一文带你搞懂Java中线程的创建方式

    一文带你搞懂Java中线程的创建方式

    这篇文章主要为大家详细介绍了Java中线程的创建方式的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-03-03
  • java中Cookie被禁用后Session追踪问题

    java中Cookie被禁用后Session追踪问题

    这篇文章主要介绍了Java中Cookie被禁用后Session追踪问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Spring动态管理定时任务之ThreadPoolTaskScheduler解读

    Spring动态管理定时任务之ThreadPoolTaskScheduler解读

    这篇文章主要介绍了Spring动态管理定时任务之ThreadPoolTaskScheduler解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论