Javabean和map相互转化方法代码示例

发布时间 - 2026-01-11 03:13:04    点击率:

在做导入的时候,遇到了需要将map对象转化 成javabean的问题,也就是说,不清楚javabean的内部字段排列,只知道map的 key代表javabean的字段名,value代表值。

那现在就需要用转化工具了。是通用的哦!

首先来看 JavaBean 转化成Map的方法:

/**
  * 将一个 JavaBean 对象转化为一个 Map
  * @param bean 要转化的JavaBean 对象
  * @return 转化出来的 Map 对象
  * @throws IntrospectionException 如果分析类属性失败
  * @throws IllegalAccessException 如果实例化 JavaBean 失败
  * @throws InvocationTargetException 如果调用属性的 setter 方法失败
  */ 
 @SuppressWarnings({ "rawtypes", "unchecked" }) 
 public static Map convertBean(Object bean) 
   throws IntrospectionException, IllegalAccessException, InvocationTargetException { 
  Class type = bean.getClass(); 
  Map returnMap = new HashMap(); 
  BeanInfo beanInfo = Introspector.getBeanInfo(type); 
  PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
  for (int i = 0; i< propertyDescriptors.length; i++) { 
   PropertyDescriptor descriptor = propertyDescriptors[i]; 
   String propertyName = descriptor.getName(); 
   if (!propertyName.equals("class")) { 
    Method readMethod = descriptor.getReadMethod(); 
    Object result = readMethod.invoke(bean, new Object[0]); 
    if (result != null) { 
     returnMap.put(propertyName, result); 
    } else { 
     returnMap.put(propertyName, ""); 
    } 
   } 
  } 
  return returnMap; 
 } 

下面是将Map转化成JavaBean对象的方法:

/**
  * 将一个 Map 对象转化为一个 JavaBean
  * @param type 要转化的类型
  * @param map 包含属性值的 map
  * @return 转化出来的 JavaBean 对象
  * @throws IntrospectionException 如果分析类属性失败
  * @throws IllegalAccessException 如果实例化 JavaBean 失败
  * @throws InstantiationException 如果实例化 JavaBean 失败
  * @throws InvocationTargetException 如果调用属性的 setter 方法失败
  */ 
 @SuppressWarnings("rawtypes") 
 public static Object convertMap(Class type, Map map) 
   throws IntrospectionException, IllegalAccessException, 
   InstantiationException, InvocationTargetException { 
  BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性 
  Object obj = type.newInstance(); // 创建 JavaBean 对象 
  // 给 JavaBean 对象的属性赋值 
  PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
  for (int i = 0; i< propertyDescriptors.length; i++) { 
   PropertyDescriptor descriptor = propertyDescriptors[i]; 
   String propertyName = descriptor.getName(); 
 
   if (map.containsKey(propertyName)) { 
    // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。 
    Object value = map.get(propertyName); 
 
    Object[] args = new Object[1]; 
    args[0] = value; 
 
    descriptor.getWriteMethod().invoke(obj, args); 
   } 
  } 
  return obj; 
 } 

以上内容我测试过,是没有问题的,供大家参考学习。感谢大家对本站的支持。


# java  # bean  # to  # map  # javabean转map  # 工具类  # 关于Java中BeanMap进行对象与Map的相互转换问题  # Java Bean与Map之间相互转化的实现方法  # 使用Jackson实现Map与Bean互转方式  # Map与JavaBean相互转换的工具类   # Java BeanMap实现Bean与Map的相互转换  # Java map和bean互转常用的方法总结  # 转化为  # 类属  # 转化成  # 一句  # 不清楚  # 只知道  # 需要用  # 感谢大家  # 也就是说  # 字段名  # InvocationTargetException  # setter  # throws  # IntrospectionException  # IllegalAccessException  # static  # convertBean  # Object  # public  # SuppressWarnings 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高防服务器租用如何选择配置与防御等级?  装修招标网站设计制作流程,装修招标流程?  如何在新浪SAE免费搭建个人博客?  lovemo网页版地址 lovemo官网手机登录  如何在企业微信快速生成手机电脑官网?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  PythonWeb开发入门教程_Flask快速构建Web应用  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何用y主机助手快速搭建网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  个人网站制作流程图片大全,个人网站如何注销?  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  js代码实现下拉菜单【推荐】  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel如何实现数据库事务?(DB Facade示例)  如何用PHP工具快速搭建高效网站?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Android自定义控件实现温度旋转按钮效果  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Python高阶函数应用_函数作为参数说明【指导】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  使用Dockerfile构建java web环境  Laravel如何处理CORS跨域请求?(配置示例)  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在IIS中配置站点IP、端口及主机头?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  简单实现Android验证码  Swift开发中switch语句值绑定模式  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  如何用景安虚拟主机手机版绑定域名建站?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  如何在不使用负向后查找的情况下匹配特定条件前的换行符  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何撰写建站申请书?关键要点有哪些?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  动图在线制作网站有哪些,滑动动图图集怎么做?  香港服务器建站指南:免备案优势与SEO优化技巧全解析