利用commons.BeanUtils实现Obj和Map之间转换,这种是最简单,也是最经常用的
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass)
throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
org.apache.commons.beanutils.BeanUtils.populate(obj, map);
return obj;
}
public static Map<?, ?> objectToMap(Object obj) {
if (obj == null) {
return null;
}
return new org.apache.commons.beanutils.BeanMap(obj);
}
利用java reflect完成Obj和Map之间的相互转换
public Map<String,Object> Obj2Map(Object obj) throws Exception{
Map<String,Object> map=new HashMap<String, Object>();
Field[] fields = obj.getClass().getDeclaredFields();
for(Field field:fields){
field.setAccessible(true);
map.put(field.getName(), field.get(obj));
}
return map;
}
public Object map2Obj(Map<String,Object> map,Class<?> clz) throws Exception{
Object obj = clz.newInstance();
Field[] declaredFields = obj.getClass().getDeclaredFields();
for(Field field:declaredFields){
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}
field.setAccessible(true);
field.set(obj, map.get(field.getName()));
}
return obj;
}
利用Introspector完成Obj和Map之间的相互转换
public Map<String,Object> obj2Map(Object obj) throws Exception{
Map<String,Object> map=new HashMap<String, Object>();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (key.compareToIgnoreCase("class") == 0) {
continue;
}
Method getter = property.getReadMethod();
Object value = getter!=null ? getter.invoke(obj) : null;
map.put(key, value);
}
return map;
}
public Object map2Obj(Map<String,Object> map,Class<?> clz) throws Exception{
if (map == null)
return null;
Object obj = clz.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
Method setter = property.getWriteMethod();
if (setter != null) {
setter.invoke(obj, map.get(property.getName()));
}
}
return obj;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java
# Map转Object
# Object转Map
# Java中HashMap和TreeMap的区别深入理解
# Java中List与Map初始化的一些写法分享
# JAVA HashMap详细介绍和示例
# Java8中利用stream对map集合进行过滤的方法
# java如何对map进行排序详解(map集合的使用)
# Java的MyBatis框架中Mapper映射配置的使用及原理解析
# java 三种将list转换为map的方法详解
# Java集合Set、List、Map的遍历方法
# 详解Java8新特性Stream之list转map及问题解决
# 简单易懂的Java Map数据添加指南
# 最简单
# 大家多多
# Exception
# throws
# return
# null
# beanClass
# map
# gt
# Class
# populate
# beanutils
# BeanMap
# objectToMap
# apache
# obj
# reflect
# org
# newInstance
# String
相关文章:
北京的网站制作公司有哪些,哪个视频网站最好?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何做静态网页,sublimetext3.0制作静态网页?
如何在阿里云虚拟主机上快速搭建个人网站?
如何在腾讯云免费申请建站?
如何快速生成ASP一键建站模板并优化安全性?
广德云建站网站建设方案与建站流程优化指南
建站168自助建站系统:快速模板定制与SEO优化指南
制作网站的基本流程,设计网站的软件是什么?
常州企业建站如何选择最佳模板?
,有什么在线背英语单词效率比较高的网站?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何确保西部建站助手FTP传输的安全性?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
建站之星安装后界面空白如何解决?
如何通过FTP服务器快速搭建网站?
如何高效配置IIS服务器搭建网站?
建站之星logo尺寸如何设置最合适?
如何解决ASP生成WAP建站中文乱码问题?
如何零成本快速生成个人自助网站?
建站之星后台密码遗忘?如何快速找回?
如何通过虚拟主机快速搭建个人网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
如何做网站制作流程,*游戏网站怎么搭建?
电商网站制作公司有哪些,1688网是什么意思?
Android自定义控件实现温度旋转按钮效果
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
PHP正则匹配日期和时间(时间戳转换)的实例代码
制作农业网站的软件,比较好的农业网站推荐一下?
招商网站制作流程,网站招商广告语?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
英语简历制作免费网站推荐,如何将简历翻译成英文?
香港服务器租用费用高吗?如何避免常见误区?
盐城做公司网站,江苏电子版退休证办理流程?
教学论文网站制作软件有哪些,写论文用什么软件
?
制作门户网站的参考文献在哪,小说网站怎么建立?
网站制作价目表怎么做,珍爱网婚介费用多少?
音响网站制作视频教程,隆霸音响官方网站?
建站之星如何防范黑客攻击与数据泄露?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
建站之星客服服务时间及联系方式如何?
西安大型网站制作公司,西安招聘网站最好的是哪个?
一键网站制作软件,义乌购一件代发流程?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何撰写建站申请书?关键要点有哪些?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何高效完成自助建站业务培训?
*请认真填写需求信息,我们会在24小时内与您取得联系。