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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM