文章目录
前言
在开发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;
}
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、点赞
、收藏
、评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88141.html