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 }
原文地址:https://www.cnblogs.com/wangjinyu/p/10967888.html
时间: 2024-09-29 02:03:22