通过反射判断类的非空字段是否满足要求

/**
     * 判断实体类要求非空字段是否符合要求
     * @param paramObj obj {id, name  ,Tel , sex, email}
     * @param allowedNullParams id, name  ,Tel , sex
     * @return {email : email不予许为空}
     */
    public static Map<String, String> checkNotNullParams(Object paramObj, String allowedNullParams){
        //获取所有允许为空的字段
        Set<String> nullParams = paramsStrToSet(allowedNullParams);

        //获取实体类的所有字段
        Field[] fields = paramObj.getClass().getDeclaredFields();

        Map<String, String> msg = new HashMap<>(8);

        Arrays.stream(fields).forEach(obj -> {
            obj.setAccessible(true);
            //如果参数不在允许为空的范围内,进行非空判断
            if (!nullParams.contains(obj.getName().toLowerCase())){
                try {
                    if (obj.get(paramObj) == null){
                        msg.put(obj.getName(), obj.getName() + "不予许为空值");
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        });

        return msg;
    }

    /**
     * 将参数字符串转化为set  全部改为小写
     * @param paramNameStr id, createdTime,SFID
     * @return set [id, createdtime, sfid]
     */
    public static Set<String> paramsStrToSet(String paramNameStr){
        Set<String> paramSet = new HashSet<>(8);
        String[] params = paramNameStr.split(",");
        Arrays.stream(params).forEach(obj -> paramSet.add(obj.trim().toLowerCase()));
        return paramSet;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值