码迷,mamicode.com
首页 > 编程语言 > 详细

java 将map转为实体类

时间:2019-06-03 15:51:13      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:for   EDA   tcl   使用   需要   大小   getc   except   ssi   

 1 public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
 2         
 3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 4         
 5         if (map == null) {
 6             return null;
 7         }
 8         T obj = null;
 9         try {
10             // 使用newInstance来创建对象
11             obj = clazz.newInstance();
12             // 获取类中的所有字段
13             Field[] fields = obj.getClass().getDeclaredFields();
14             for (Field field : fields) {
15                 int mod = field.getModifiers();
16                 // 判断是拥有某个修饰符
17                 if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
18                     continue;
19                 }
20                 // 当字段使用private修饰时,需要加上
21                 field.setAccessible(true);
22                 // 获取参数类型名字
23                 String filedTypeName = field.getType().getName();
24                 // 判断是否为时间类型,使用equalsIgnoreCase比较字符串,不区分大小写
25                 if (filedTypeName.equalsIgnoreCase("java.util.date")) {
26                     
27                     String datetimestamp = (String) map.get(field.getName());
28                     if (datetimestamp.equalsIgnoreCase("null")) {
29                         field.set(obj, null);
30                     } else {
31                         field.set(obj, sdf.parse(datetimestamp));
32                     }
33                 } else {
34                     field.set(obj, map.get(field.getName()));
35                 }
36             }
37         } catch (Exception e) {
38             e.printStackTrace();
39         }
40         return obj;
41     }

 

java 将map转为实体类

标签:for   EDA   tcl   使用   需要   大小   getc   except   ssi   

原文地址:https://www.cnblogs.com/wangjinyu/p/10967888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!