两个相似类属性快速复制
来源:互联网 发布:iphone酷狗网络异常 编辑:程序博客网 时间:2024/04/29 17:34
问题描述
系统中部分信息为Long类型,java中Long的精度为
解决思路
将Long类型转换为String类型再传递给js,而该属性常为一个DO,因此需要设计与其对应的VO(将DO中的Long类型转为String)用于传递给js。
接下来就是将DO中的值复制给VO即可。
两个类复制
使用BeanCopier类来完成两个类的复制,可以将其包装成一个专门用来类复制的工具类,代码如下:
package com.utils; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import net.sf.cglib.beans.BeanCopier; import net.sf.cglib.core.Converter; public class PropertiesCopyUtil { private static Map<String, BeanCopier> beanCopierMap = new ConcurrentHashMap<String, BeanCopier>(); public static void copyProperties(Object source, Object target, Converter converter) { boolean needConverter = false; if (converter != null) { needConverter = true; } BeanCopier copier = generateCopier(source, target, needConverter); copier.copy(source, target, converter); } private static BeanCopier generateCopier(Object source, Object target, boolean needConverter) { String beanKey = generateKey(source.getClass(), target.getClass()); if (!beanCopierMap.containsKey(beanKey)) { BeanCopier copier = BeanCopier.create(source.getClass(), target.getClass(), needConverter); beanCopierMap.put(beanKey, copier); return copier; } else { return beanCopierMap.get(beanKey); } } private static String generateKey(Class<? extends Object> class1, Class<? extends Object> class2) { return class1.toString() + class2.toString(); } }
如用户领域模型UserDO以及与之对应的需要前端展示的UserVO,代码使用:
- 若两个类中类型完全相同,则不需要转换(converter)。
PropertiesCopyUtil.copyProperties(userDO, userVO,null);
- 若两个类中类型部分需要转换,则需要实现转换(converter)。
userDO中的id类型在userVO中为String类型,则userDO复制到userVO调用方式如下:
PropertiesCopyUtil.copyProperties(userDO, userVO, new Converter(){ @Override public Object convert(Object value, Class target, Object context) { if ("setId".equals(context) && value != null) { return value.toString(); } return value; } });
0 0
- 两个相似类属性快速复制
- Solidworks如果有两个相似的图纸如何快速复制第二份图纸
- 【项目从0到1】Java 快速复制两个类中的相同属性(无需继承关系)
- 实现两个实体类属性之间的复制
- BeanUtils使用之复制两个实体类中的属性
- 【两个小步骤快速进行复制粘贴】
- Struts中两个相似类的解释
- 天易41----java实现两个实体类属性之间的复制
- C#利用反射实现两个类的对象之间相同属性的值的复制
- 类属性复制实现
- 搜索引擎技术:标题去重 如何快速判断两个字符串的相似度
- 计算两个属性名称的相似度(毕设第一周2016.1.9)
- 快速、大量、简单的复制两个数据库之间的数据。
- 复制两个不同类的对象的属性
- 复制两个不同类的对象的属性
- 复制两个不同类的对象的属性
- Java中复制两个不同类的对象的属性
- Struts中两个相似类的解释DispatchAction
- 工具类:检查数据库表是否存在某一列
- idea快捷键
- HTML元素及属性(二)
- HDU 1005 Number Sequence(循环节) *
- WCF通过配置文件搭建—— 一起嗨
- 两个相似类属性快速复制
- 队列的特别实现
- 图像矩阵——灰度与彩色图
- leetcode-501-Find Mode in Binary Search Tree
- 关于mac系统外接键盘的设置
- 2017.02.15总结
- ContentProvider的工作过程
- 让你的DBCP连接池连接不超时
- PAT-A 1009. Product of Polynomials (25)