文章目录
前言
在开发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