场景:实现可配置的Url拼接,便于web端对接对某些参数进行调整,url格式有一定的规律可控性,只需要对其中某些字段做修改控制。
替换实现方法
1.提取对象中value值为null的属性字段
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13public 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))
将上述的空值属性名排除,这样就可以完成替换
复制代码
1
2
3
4
5
6
7
8
9
10/** * 将提供的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格式并返回相应原数据类型
复制代码
1
2
3
4Object copyresult = copyNoNullProperties(setInfo, thirdUrlInfo1); JSONObject jsonInfo = JSONUtil.parseObj(copyresult); ThirdUrlInfo result = JSONUtil.toBean(jsonInfo, thirdUrlInfo.getClass()); System.out.println(result);
最后
以上就是清脆招牌最近收集整理的关于非空对象属性value替换替换实现方法的全部内容,更多相关非空对象属性value替换替换实现方法内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复