今天小编给大家分享一下Map与JavaBean相互转换的工具类怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用范围
今天小编给大家分享一下Map与JavaBean相互转换的工具类怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
使用范围:JavaBean
类对象的属性不能是数组、List
、Set
、Map
public class MapBeanUtil { public static Map<String, Object> bean2Map(Object obj) { Map<String, Object> map = new LinkedHashMap<>(); Class<?> clazz = obj.getClass(); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = null; try { value = field.get(obj); } catch (IllegalAccessException e) { e.printStackTrace(); } if (value == null){ value = ""; } map.put(fieldName, value); } return map; } public static <T> T map2Bean(final Class<T> clazz, final Map<String, ? extends Object> map) { if (map == null) { return null; } T res = null; try { res = clazz.getDeclaredConstructor().newInstance(); //获取到所有属性,不包括继承的属性 Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { //获取字段的修饰符 int mod = field.getModifiers(); if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue; } //设置对象的访问权限 field.setAccessible(true); //根据属性名称去map获取value if(map.containsKey(field.getName())) { //给对象赋值 field.set(res, map.get(field.getName())); } } } catch (Exception e) { e.printStackTrace(); } return res; } public static void main(String[] args) throws Exception { HashMap<String, Object> map = new HashMap<>(); map.put("id", 1001); map.put("username", "zhangsan"); map.put("passWord", "123456"); map.put("nickname", "张三"); map.put("email", "369950806@qq.com"); map.put("gender", true); map.put("birth", LocalDate.now()); map.put("avatar", "/aa/bb/ab.jpg"); map.put("role", "VIP"); map.put("status", (byte) 1); map.put("salt", "ldfkasjghweoiq324"); map.put("createTime", LocalDateTime.now()); map.put("updateTime", LocalDateTime.now()); User user = map2Bean(User.class, map); System.out.println(user); Map<String, Object> res = bean2Map(user); System.out.println(map); }}
User类的代码:
public class User { private Integer id; private String username; private String password; private String nickname; private String email; private Boolean gender; private LocalDate birth; private String avatar; private String role; private Byte status; private String salt; private LocalDateTime createTime; private LocalDateTime updateTime;}
以上就是“Map与JavaBean相互转换的工具类怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。
--结束END--
本文标题: Map与JavaBean相互转换的工具类怎么使用
本文链接: https://lsjlt.com/news/322914.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0