会给你一个对象。如果需要统计对象中不为空的属性个数。第一种方式是判断对象的每个属性是否为null。如果对象有1000个值,则需要编写1000个循环。在这种情况下,代码非常臃肿。另外,如果我只需要关注1000个字段中600个值的填充,或者增删字段,还是会有一些变化的。有没有办法定义一个字段名的集合,对于集合中的字段,我们关注字段的填充状态,对于不在集合中的字段,我们不关注字段的填充状态。即利用反射,将类的所有字段映射成一个集合,然后遍历集合,过滤出我们关心的集合,再通过反射获取字段的值,判断是否为null。ListcountColumns=Arrays.asList("aColumn","bColumn","cColumn");for(FielddeclaredField:Person.class.getDeclaredFields()){try{if(countColumns.contains(declaredField.getName())){declaredField.setAccessible(true);对象obj=declaredField.get(agentCustomer);如果(Objects.nonNull(obj)&&StringUtils.isNotEmpty(String.valueOf(obj))){count++;}}}catch(IllegalAccessExceptione){log.info("initCustomerDetailCount:{}",e);}}如果我们需要增加或删除字段,只需要修改countColumns集合的值即可。我们甚至可以把这个值对应的字符串放到数据库中,改成动态获取的方式。