java判断对象的属性值是否是空_java判断一个对象是否为空

java判断对象的属性值是否是空_java判断一个对象是否为空Java判断对象是否所有属性为空(反射)_校验对象的多个属性为空

java判断对象的属性值是否是空_java判断一个对象是否为空"

前言

在开发Excel数据导入的时候,后台拿到Excel中的数据并接收到List泛型集合中,发现有很多对象的属性全部为null,想通过代码将这些无效的数据给过滤掉,下面是过滤的具体操作。


ObjectUtil工具类

import java.util.*;
import java.lang.reflect.Field;

public class ObjectUtil { 
   
    /** * 判断该对象是否所有属性为空 * 返回ture表示所有属性为null,返回false表示不是所有属性都是null */
    public static boolean isAllFieldNull(Object object) { 
   
        boolean flag = true;

        Class clazz = object.getClass();
        Field[] fields = clazz.getDeclaredFields();

        for (Field field : fields) { 
   
            //设置属性是可以访问的(私有的也可以)
            field.setAccessible(true);
            Object value = null;
            try { 
   
                value = field.get(object);
                // 只要有1个属性不为空,那么就不是所有的属性值都为空
                if (value != null) { 
   
                    flag = false;
                    break;
                }
            } catch (IllegalAccessException e) { 
   
                e.printStackTrace();
            }
        }
        return flag;
    }
}

根据对象的字段名取出字段值

    /** * 反射根据对象的字段名取出字段值 * @param object 类对象 * @param pEntity 字段名 */
    public static Object getFieldP(Object object, String pEntity){ 
   
        Class clazz = object.getClass();
        try { 
   
            Field field =clazz.getDeclaredField(pEntity);
            field.setAccessible(true);
            return field.get(object);
        } catch (Exception e) { 
   
            e.printStackTrace();
        }
        return null;
    }

对象的字段比较多, 有些字段可能为空。例 :


package org.springblade.modules.dataProcess.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/** * 实体类 * * @author BladeX * @since 2023-01-09 */
@Data
@TableName("PROV_TO_MILEAGE")
@ApiModel(value = "ProvToMileage对象", description = "ProvToMileage对象")
public class ProvToMileage implements Serializable { 
   

	private static final long serialVersionUID = 1L;

	/** * 日期(天) */
		@ApiModelProperty(value = "日期(天)")
		private Date day;
	/** * 省份(归属地) */
		@ApiModelProperty(value = "省份(归属地)")
		private BigDecimal accessCode;
	/** * 行驶地(未知) */
		@ApiModelProperty(value = "行驶地(未知)")
		private BigDecimal p00;
	/** * 行驶地(北京) */
		@ApiModelProperty(value = "行驶地(北京)")
		private BigDecimal p11;
	/** * 行驶地(天津) */
		@ApiModelProperty(value = "行驶地(天津)")
		private BigDecimal p12;
	/** * 行驶地(河北) */
		@ApiModelProperty(value = "行驶地(河北)")
		private BigDecimal p13;
	/** * 行驶地(山西) */
		@ApiModelProperty(value = "行驶地(山西)")
		private BigDecimal p14;
	/** * 行驶地(内蒙古) */
		@ApiModelProperty(value = "行驶地(内蒙古)")
		private BigDecimal p15;
	/** * 行驶地(辽宁) */
		@ApiModelProperty(value = "行驶地(辽宁)")
		private BigDecimal p21;
	/** * 行驶地(吉林) */
		@ApiModelProperty(value = "行驶地(吉林)")
		private BigDecimal p22;
	/** * 行驶地(黑龙江) */
		@ApiModelProperty(value = "行驶地(黑龙江)")
		private BigDecimal p23;
	/** * 行驶地(上海) */
		@ApiModelProperty(value = "行驶地(上海)")
		private BigDecimal p31;
	/** * 行驶地(江苏) */
		@ApiModelProperty(value = "行驶地(江苏)")
		private BigDecimal p32;
	/** * 行驶地(浙江) */
		@ApiModelProperty(value = "行驶地(浙江)")
		private BigDecimal p33;
	/** * 行驶地(安徽) */
		@ApiModelProperty(value = "行驶地(安徽)")
		private BigDecimal p34;
	/** * 行驶地(福建) */
		@ApiModelProperty(value = "行驶地(福建)")
		private BigDecimal p35;
	/** * 行驶地(江西) */
		@ApiModelProperty(value = "行驶地(江西)")
		private BigDecimal p36;
	/** * 行驶地(山东) */
		@ApiModelProperty(value = "行驶地(山东)")
		private BigDecimal p37;
	/** * 行驶地(河南) */
		@ApiModelProperty(value = "行驶地(河南)")
		private BigDecimal p41;
	/** * 行驶地(湖北) */
		@ApiModelProperty(value = "行驶地(湖北)")
		private BigDecimal p42;
	/** * 行驶地(湖南) */
		@ApiModelProperty(value = "行驶地(湖南)")
		private BigDecimal p43;
	/** * 行驶地(广东) */
		@ApiModelProperty(value = "行驶地(广东)")
		private BigDecimal p44;
	/** * 行驶地(广西) */
		@ApiModelProperty(value = "行驶地(广西)")
		private BigDecimal p45;
	/** * 行驶地(海南) */
		@ApiModelProperty(value = "行驶地(海南)")
		private BigDecimal p46;
	/** * 行驶地(重庆) */
		@ApiModelProperty(value = "行驶地(重庆)")
		private BigDecimal p50;
	/** * 行驶地(四川) */
		@ApiModelProperty(value = "行驶地(四川)")
		private BigDecimal p51;
	/** * 行驶地(贵州) */
		@ApiModelProperty(value = "行驶地(贵州)")
		private BigDecimal p52;
	/** * 行驶地(云南) */
		@ApiModelProperty(value = "行驶地(云南)")
		private BigDecimal p53;
	/** * 行驶地(西藏) */
		@ApiModelProperty(value = "行驶地(西藏)")
		private BigDecimal p54;
	/** * 行驶地(陕西) */
		@ApiModelProperty(value = "行驶地(陕西)")
		private BigDecimal p61;
	/** * 行驶地(甘肃) */
		@ApiModelProperty(value = "行驶地(甘肃)")
		private BigDecimal p62;
	/** * 行驶地(青海) */
		@ApiModelProperty(value = "行驶地(青海)")
		private BigDecimal p63;
	/** * 行驶地(宁夏) */
		@ApiModelProperty(value = "行驶地(宁夏)")
		private BigDecimal p64;
	/** * 行驶地(新疆) */
		@ApiModelProperty(value = "行驶地(新疆)")
		private BigDecimal p65;
	/** * 行驶地(未知) */
		@ApiModelProperty(value = "行驶地(未知)")
		private BigDecimal p99;


}



总结

如果此篇文章有帮助到您, 希望打大佬们能关注点赞收藏评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!

参考1

今天的文章java判断对象的属性值是否是空_java判断一个对象是否为空分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/86473.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注