Map与实体之间转换

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.thunisoft.maybee.engine.utils;
 
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
 
public class MapObjUtil {
 
     /**
      * 实体对象转成Map
      *
      * @param obj 实体对象
      * @return
      */
     public static Map<String, Object> object2Map(Object obj) {
         Map<String, Object> map = new HashMap<String, Object>();
         if (obj == null ) {
             return map;
         }
         Class clazz = obj.getClass();
         Field[] fields = clazz.getDeclaredFields();
         try {
             for (Field field : fields) {
                 field.setAccessible( true );
                 map.put(field.getName(), field.get(obj));
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
         return map;
     }
 
     /**
      * Map转成实体对象
      *
      * @param map   map实体对象包含属性
      * @param clazz 实体对象类型
      * @return
      */
     public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
         if (map == null ) {
             return null ;
         }
         T obj = null ;
         try {
             obj = clazz.newInstance();
 
             Field[] fields = obj.getClass().getDeclaredFields();
             for (Field field : fields) {
                 int mod = field.getModifiers();
                 if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                     continue ;
                 }
                 field.setAccessible( true );
                 String filedTypeName = field.getType().getName();
                 if (filedTypeName.equalsIgnoreCase( "java.util.date" )) {
                     String datetimestamp = String.valueOf(map.get(field.getName()));
                     if (datetimestamp.equalsIgnoreCase( "null" )) {
                         field.set(obj, null );
                     } else {
                         field.set(obj, new Date(Long.parseLong(datetimestamp)));
                     }
                 } else {
                     field.set(obj, map.get(field.getName()));
                 }
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
         return obj;
     }
}
原文地址:https://www.cnblogs.com/hfultrastrong/p/9075947.html

转载于:https://www.cnblogs.com/jpfss/p/11573117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值