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

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

替换实现方法

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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))

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

复制代码
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
4
Object copyresult = copyNoNullProperties(setInfo, thirdUrlInfo1); JSONObject jsonInfo = JSONUtil.parseObj(copyresult); ThirdUrlInfo result = JSONUtil.toBean(jsonInfo, thirdUrlInfo.getClass()); System.out.println(result);

最后

以上就是清脆招牌最近收集整理的关于非空对象属性value替换替换实现方法的全部内容,更多相关非空对象属性value替换替换实现方法内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部