反射去除对象中String字符串的空格

背景

        excel导入,涉及多个String类型的字段需要去除前后空格,然后进行数据处理,一般都会用到xxx.trim(),由于字段太多,会写很多这种繁琐的代码。为了优化这种繁琐的代码,后面想到了用反射来进行处理。

常规写法1

常规写法2

反射去除对象中String字符串的空格_第1张图片

 利用反射进行优化:

    /**
     * @Description: 将 类中的 类型为 String的属性值的前后空格去掉
     * @param  要转换的类
     * @return: 转换完的bean
     */
    public static  T trimStrFields(T bean) {
        if (bean == null) {
            return null;
        }
        Field[] fields = ReflectUtil.getFields(bean.getClass());
        for (Field field : fields) {
            if (String.class.equals(field.getType())) {
                String fieldValue = (String) ReflectUtil.getFieldValue(bean, field);
                if (StringUtils.isNotBlank(fieldValue)) {
                    String trim = StrUtil.trim(fieldValue);
                    ReflectUtil.setFieldValue(bean, field, trim);
                }
            }
        }
        return bean;
    }

    public static void main(String[] args) {
        DemoDTO dto = new DemoDTO();
        dto.setId(1);
        dto.setName("张三 ");
        dto.setAge("20 ");
        dto.setCode(" s0000001 ");
        System.out.println(dto);
        DemoDTO demoDTO = trimStrFields(dto);
        System.out.println(demoDTO);
    }

 输出结果:

DemoDTO(id=1, name=张三 , code= s0000001 , age=20 , sex=null, address=null, birthday=null)
DemoDTO(id=1, name=张三, code=s0000001, age=20, sex=null, address=null, birthday=null)

你可能感兴趣的:(java,开发语言)