List中add一个new Bean()的size问题

本文介绍了一种在Java中判断自定义Bean对象所有字段是否为空的方法,并提供了一个实用的通用函数,避免了手动检查每个属性的繁琐过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写项目的时候,有个地方是这样的

首先是new了一个list

List<Bean> list= new ArrayList<Bean>();

然后通过一个循环往list 里面 add bean

for( XXXXXXXX) {

       Bean bean= new Bean();

       if( XXXX){

             bean.setX(X);

       }

      if(XXX) {

           bean.setXX(XX);

       }

       ........

   然后往里面添加Bean

  list.add(bean);

}

这个时候要用到  list .size() ,

按常理是,for 循环里面的 if 如果 都不成立,这时候 list 会放入一个 new 出来的bean ,而这个bean里的值都是空的,但是也在size 占了 1 个大小 ,

我想要的效果是 :  如果 if 里都不成立,我不想往list 里 加入一个值都是空的bean ,

所以我要做的是,在放入list之前判断这个bean 里的属性是不是都为空,

一开始自己写了一个遍历对象里的属性,一个个get出来判断。写完之后,发现属性越多,写的代码很多,而且不通用,自己看到都感觉十分难受。

然后,找了一个别人写的,试了一下完全可以,不仅通用还简洁 ,发出来给像我这样的小白用。

public static boolean isAllFieldNull(Object  obj) throws Exception{
        // 得到类对象
        Class beanClass = obj.getClass();
        //得到属性集合
        Field[] fs = beanClass.getDeclaredFields();
        //遍历属性
        for (Field f : fs) {
            // 设置属性是可以访问的(私有的也可以)
            f.setAccessible(true);
            // 得到此属性的值
            Object val = f.get(obj);
            //只要有1个属性不为空,那么就不是所有的属性值都为空
            if(val!=null && !"".equals(val) ) {
              return false;
            }
        }
        return true;
    }

如果返回true ,说明bean 里的值全是null  ,加个判断就不需要放list 里 add  了 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值