Map与JavaBean相互转换的工具类
程序员文章站
2023-08-14 10:28:30
下面就来分享工具类的内容:使用范围:javabean类对象的属性不能是数组、list、set、mappublic class mapbeanutil { /** * javabean转m...
下面就来分享工具类的内容:
使用范围:javabean
类对象的属性不能是数组、list
、set
、map
public class mapbeanutil { /** * javabean转map * @param obj * @return */ 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; } /** * map转javabean * @param clazz * @param map * @param <t> * @return */ 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相互转换的工具类 的文章就介绍到这了,更多相关map与javabean相互转换内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
Map与JavaBean相互转换的工具类
-
Map与JavaBean相互转换的工具类
-
BeanDtoVoUtil 工具类( v-1.0.1 版本) , 原来不管是实体类对象T 还是List<T> 还是Page<T> 的Entity、Dto、Vo的相互转换还能怎么简单,V2版本
-
javascript 公历与农历相互转换工具类
-
实用工具(一)-------java对象类、XML格式的相互转换
-
实用工具(一)-------java对象类、XML格式的相互转换
-
go语言map与string的相互转换的实现
-
Map与实体类转换工具类
-
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
-
javascript 公历与农历相互转换工具类