国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

兩個相似類屬性快速復制

2019-11-08 19:51:27
字體:
來源:轉載
供稿:網友

問題描述

系統中部分信息為Long類型,java中Long的精度為264-1,而js在64位機器上為253-1,32位機器上為231-1。因此利用js獲取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; } });
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌珠穆沁旗| 班戈县| 左权县| 双柏县| 乌拉特后旗| 温泉县| 铁岭县| 乐山市| 昔阳县| 呼玛县| 临澧县| 北京市| 上犹县| 临漳县| 阿城市| 兴城市| 托克托县| 双鸭山市| 基隆市| 贡嘎县| 永修县| 淮安市| 天水市| 台南市| 清河县| 交城县| 沾化县| 南丹县| 从江县| 进贤县| 闽侯县| 上杭县| 许昌县| 鹰潭市| 米易县| 滦南县| 资源县| 漳平市| 翁源县| 昔阳县| 青冈县|