• 【BeanTrimUtil】通过反射去除JavaBean中String类型数据的空格:一行代码搞定整个Bean的字符串去空!


    【原文地址】

    https://blog.csdn.net/qq_36170500/article/details/107250282

    • 简化不必要的代码逻辑
    • 纯原生环境亦可运行
    • 解决空指针异常抛出
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.Objects;
    
    /**
     * @author zhoudeshui v1.2
     * @Desc 版权声明:本文为CSDN博主「一个人的编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
     * 原文链接:...
     */
    public class BeanTrimUtil {
    
    
        // 整个类的所有string类型字段去空值,trim() 去空
        public static Object removeSpaces(Object object) {
            Class<?> clazz = object.getClass();
            //获取到所有的属性值
            Field[] fields = clazz.getDeclaredFields();
            Method setMethod = null;
            Method getMethod = null;
    
            Object obj1 = null;
            for (Field field : fields) {
                //判断属性是否为字符类型
    
                if ("class java.lang.String".equals(field.getGenericType().toString())) {
                    try {
                        //获取到当前字段名称,并首字母大写
                        String itemName = titleCase(field.getName());
                        //根据属性名获取到方法名,再根据方法名获取到方法
                        getMethod = clazz.getMethod("get" + itemName);
                        setMethod = clazz.getMethod("set" + itemName, String.class);
                        //执行获取到的方法,并传入参数,获取到当前字段对应的属性值
                        String val = (String) getMethod.invoke(object);// 调用getter方法获取属性值
                        if (Objects.isNull(val)) {
                            continue;
                        }
                        //执行set类型方法,为当前字段赋值为.trim()后的新值 替换其中空字符
                        obj1 = setMethod.invoke(object, val.trim());
    //                    obj1 = setMethod.invoke(object, val.trim().replace(" ", ""));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            return object;
        }
    
        public static void removeSpacesVoid(Object object) {
            Class<?> clazz = object.getClass();
            //获取到所有的属性值
            Field[] fields = clazz.getDeclaredFields();
            Method setMethod = null;
            Method getMethod = null;
            for (Field field : fields) {
                //判断属性是否为字符类型
                if ("class java.lang.String".equals(field.getGenericType().toString())) {
                    try {
                        //获取到当前字段名称,并首字母大写
                        String itemName = titleCase(field.getName());
                        //根据属性名获取到方法名,再根据方法名获取到方法
                        getMethod = clazz.getMethod("get" + itemName);
                        setMethod = clazz.getMethod("set" + itemName, String.class);
                        //执行获取到的方法,并传入参数,获取到当前字段对应的属性值
                        String val = (String) getMethod.invoke(object);// 调用getter方法获取属性值
                        if (Objects.isNull(val)) {
                            continue;
                        }
                        //执行set类型方法,为当前字段赋值为.trim()后的新值 替换其中空字符
                        setMethod.invoke(object, val.trim());
    //                    setMethod.invoke(object, val.trim().replace(" ", ""));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        //首字母大写
        public static String titleCase(String s) {
            char[] c = s.toCharArray();
            if ((c[0] >= 'a') && (c[0] <= 'z')) {
                c[0] -= 32;
            }
            return new String(c);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87

    使用示例

    在这里插入图片描述

    removeSpacesVoid() 无需接参

  • 相关阅读:
    【linux命令】链接/用户组/find/xargs/grep
    java-php-python-基于EE技术的“日进斗金”理财大师系统设计与实现计算机毕业设计
    TS的class 继承 类型约束
    ESP32C3 开发板 Download Mode 模式
    css--BFC是什么,有什么用,怎么用?
    【iVX】十五分钟制作一款小游戏,iVX真有怎么神?
    力扣(LeetCode)算法_C++—— 两个数组的交集
    zookeeper
    mysqld_exporter无法连接mysql解决
    音乐管理系统
  • 原文地址:https://blog.csdn.net/m0_46269959/article/details/133072478