java实现Object和Map之间的转换3种方式
发布时间 - 2026-01-11 02:06:11 点击率:次利用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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作软件有哪些,制图软件有哪些?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
JS弹性运动实现方法分析
香港网站服务器数量如何影响SEO优化效果?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何选择PHP开源工具快速搭建网站?
详解vue.js组件化开发实践
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
焦点电影公司作品,电影焦点结局是什么?
Python正则表达式进阶教程_复杂匹配与分组替换解析
如何在VPS电脑上快速搭建网站?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何在腾讯云服务器上快速搭建个人网站?
制作公司内部网站有哪些,内网如何建网站?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel集合Collection怎么用_Laravel集合常用函数详解
如何快速建站并高效导出源代码?
Windows Hello人脸识别突然无法使用
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
香港服务器WordPress建站指南:SEO优化与高效部署策略
三星、SK海力士获美批准:可向中国出口芯片制造设备
常州企业网站制作公司,全国继续教育网怎么登录?
网页设计与网站制作内容,怎样注册网站?
如何快速完成中国万网建站详细流程?
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
jQuery中的100个技巧汇总
javascript基本数据类型及类型检测常用方法小结
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Laravel如何升级到最新版本?(升级指南和步骤)
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
如何在云服务器上快速搭建个人网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
英语简历制作免费网站推荐,如何将简历翻译成英文?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
HTML 中动态设置元素 name 属性的正确语法详解
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】

