我是靠谱客的博主 清脆招牌,最近开发中收集的这篇文章主要介绍非空对象属性value替换替换实现方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

场景:实现可配置的Url拼接,便于web端对接对某些参数进行调整,url格式有一定的规律可控性,只需要对其中某些字段做修改控制。

替换实现方法

1.提取对象中value值为null的属性字段

    public static String[] getNUllPropertyNames(Object source){
        final BeanWrapper src = new BeanWrapperImpl(source);
        PropertyDescriptor[] pds = src.getPropertyDescriptors();
        Set<String> emptyNames = new HashSet<>();
        for (PropertyDescriptor pd : pds) {
            Object srcValue = src.getPropertyValue(pd.getName());
            if(srcValue == null){
                emptyNames.add(pd.getName());
            }
        }
        String[] result = new String[emptyNames.size()];
        return emptyNames.toArray(result);
    }

2.使用BeanUtil.copyProperties(source,target,getNullPropertyNames(source))

将上述的空值属性名排除,这样就可以完成替换

    /**
     * 将提供的source类型信息 替换为目标拼接信息target
     * @param source 需要修改的信息
     * @param target 生成新的结构信息
     * @return
     */
    public static Object copyNoNullProperties(Object source,Object target){
        BeanUtil.copyProperties(source,target,getNUllPropertyNames(source));
        return target;
    }

3.根据上述方法,获取原信息,得到前端存库需要替换信息,完成替换。

由于产生的数据这里采取了Object形式进行接收,这里采取反射,将它转换为JSON格式并返回相应原数据类型

        Object copyresult = copyNoNullProperties(setInfo, thirdUrlInfo1);
        JSONObject jsonInfo = JSONUtil.parseObj(copyresult);
        ThirdUrlInfo result = JSONUtil.toBean(jsonInfo, thirdUrlInfo.getClass());
        System.out.println(result);

最后

以上就是清脆招牌为你收集整理的非空对象属性value替换替换实现方法的全部内容,希望文章能够帮你解决非空对象属性value替换替换实现方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部