java 将map转为实体类
使用反射将map转为对象,如果不使用反射的话需要一个get一个set写起来麻烦,并且不通用,所以写了一个通用的方法将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 | public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) { SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); if (map == null ) { return null ; } T obj = null ; try { // 使用newInstance来创建对象 obj = clazz.newInstance(); // 获取类中的所有字段 Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); // 判断是拥有某个修饰符 if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue ; } // 当字段使用private修饰时,需要加上 field.setAccessible( true ); // 获取参数类型名字 String filedTypeName = field.getType().getName(); // 判断是否为时间类型,使用equalsIgnoreCase比较字符串,不区分大小写 // 给obj的属性赋值 if (filedTypeName.equalsIgnoreCase( "java.util.date" )) { String datetimestamp = (String) map.get(field.getName()); if (datetimestamp.equalsIgnoreCase( "null" )) { field.set(obj, null ); } else { field.set(obj, sdf.parse(datetimestamp)); } } else { field.set(obj, map.get(field.getName())); } } } catch (Exception e) { e.printStackTrace(); } return obj; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】