全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java实现Object和Map之间的转换3种方式

利用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小时内与您取得联系。