Map与JavaBean相互转换的工具类怎么使用
今天小编给大家分享一下Map与JavaBean相互转换的工具类怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
使用范围:JavaBean
类对象的属性不能是数组、List
、Set
、Map
publicclassMapBeanUtil{/***JavaBean转Map*@paramobj*@return*/publicstaticMap<String,Object>bean2Map(Objectobj){Map<String,Object>map=newLinkedHashMap<>();Class<?>clazz=obj.getClass();for(Fieldfield:clazz.getDeclaredFields()){field.setAccessible(true);StringfieldName=field.getName();Objectvalue=null;try{value=field.get(obj);}catch(IllegalAccessExceptione){e.printStackTrace();}if(value==null){value="";}map.put(fieldName,value);}returnmap;}/***Map转JavaBean*@paramclazz*@parammap*@param<T>*@return*/publicstatic<T>Tmap2Bean(finalClass<T>clazz,finalMap<String,?extendsObject>map){if(map==null){returnnull;}Tres=null;try{res=clazz.getDeclaredConstructor().newInstance();//获取到所有属性,不包括继承的属性Field[]fields=clazz.getDeclaredFields();for(Fieldfield:fields){//获取字段的修饰符intmod=field.getModifiers();if(Modifier.isStatic(mod)||Modifier.isFinal(mod)){continue;}//设置对象的访问权限field.setAccessible(true);//根据属性名称去map获取valueif(map.containsKey(field.getName())){//给对象赋值field.set(res,map.get(field.getName()));}}}catch(Exceptione){e.printStackTrace();}returnres;}publicstaticvoidmain(String[]args)throwsException{HashMap<String,Object>map=newHashMap<>();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());Useruser=map2Bean(User.class,map);System.out.println(user);Map<String,Object>res=bean2Map(user);System.out.println(map);}}
User类的代码:
publicclassUser{privateIntegerid;privateStringusername;privateStringpassword;privateStringnickname;privateStringemail;privateBooleangender;privateLocalDatebirth;privateStringavatar;privateStringrole;privateBytestatus;privateStringsalt;privateLocalDateTimecreateTime;privateLocalDateTimeupdateTime;}
以上就是“Map与JavaBean相互转换的工具类怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。