浅谈对象与Map相互转化
发布时间 - 2026-01-11 03:19:12 点击率:次javabean与map的转换有很多种方式,比如:

1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用
2、通过java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦
3、通过net.sf.cglib.beans.BeanMap类中的方法,这种方式效率极高,它跟第二种方式的区别就是因为使用了缓存,初次创建bean时需要初始化,之后就使用缓存,所以速度极快,经测试,循环bean和map的转换10000次,仅需要300毫秒左右。
所以,推荐第3种方式。 以下是相关代码:
/**
* 将对象装换为map
* @param bean
* @return
*/
public static <T> Map<String, Object> beanToMap(T bean) {
Map<String, Object> map = Maps.newHashMap();
if (bean != null) {
BeanMap beanMap = BeanMap.create(bean);
for (Object key : beanMap.keySet()) {
map.put(key+"", beanMap.get(key));
}
}
return map;
}
/**
* 将map装换为javabean对象
* @param map
* @param bean
* @return
*/
public static <T> T mapToBean(Map<String, Object> map,T bean) {
BeanMap beanMap = BeanMap.create(bean);
beanMap.putAll(map);
return bean;
}
/**
* 将List<T>转换为List<Map<String, Object>>
* @param objList
* @return
* @throws JsonGenerationException
* @throws JsonMappingException
* @throws IOException
*/
public static <T> List<Map<String, Object>> objectsToMaps(List<T> objList) {
List<Map<String, Object>> list = Lists.newArrayList();
if (objList != null && objList.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = objList.size(); i < size; i++) {
bean = objList.get(i);
map = beanToMap(bean);
list.add(map);
}
}
return list;
}
/**
* 将List<Map<String,Object>>转换为List<T>
* @param maps
* @param clazz
* @return
* @throws InstantiationException
* @throws IllegalAccessException
*/
public static <T> List<T> mapsToObjects(List<Map<String, Object>> maps,Class<T> clazz) throws InstantiationException, IllegalAccessException {
List<T> list = Lists.newArrayList();
if (maps != null && maps.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = maps.size(); i < size; i++) {
map = maps.get(i);
bean = clazz.newInstance();
mapToBean(map, bean);
list.add(bean);
}
}
return list;
}
关于利用BeanMap进行对象与Map的相互转换的介绍和代码就到这里,希望能对大家有所帮助。如果您有什么问题可以给我留言,小编会及时回复大家的。感谢大家对本站的支持。
# java
# 对象转换成json
# json
# 转换为对象
# AngularJS操作键值对象类似java的hashmap(填坑小结)
# 使用GSON库将Java中的map键值对应结构对象转换为JSON
# Java遍历Map对象的四种方式
# JS自定义对象实现Java中Map对象功能的方法
# 转换为
# 有什么
# 如果您
# 这种方法
# 推荐使用
# 极高
# 就到
# 很低
# 能对
# 先将
# 再将
# 第二种
# 小编
# 极快
# 给我留言
# 对中
# 感谢大家
# 键值
# 时需
# 类中
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
移动端脚本框架Hammer.js
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel如何使用模型观察者?(Observer代码示例)
php485函数参数是什么意思_php485各参数详细说明【介绍】
使用Dockerfile构建java web环境
Laravel如何使用Blade组件和插槽?(Component代码示例)
如何在景安服务器上快速搭建个人网站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何撰写建站申请书?关键要点有哪些?
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何为API生成Swagger或OpenAPI文档
EditPlus中的正则表达式 实战(4)
如何快速登录WAP自助建站平台?
,南京靠谱的征婚网站?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
三星网站视频制作教程下载,三星w23网页如何全屏?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
网站图片在线制作软件,怎么在图片上做链接?
如何在阿里云ECS服务器部署织梦CMS网站?
Android中AutoCompleteTextView自动提示
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel Session怎么存储_Laravel Session驱动配置详解
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
JavaScript常见的五种数组去重的方式
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Python文件操作最佳实践_稳定性说明【指导】
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel distinct去重查询_Laravel Eloquent去重方法
如何在IIS7中新建站点?详细步骤解析
如何用美橙互联一键搭建多站合一网站?
长沙做网站要多少钱,长沙国安网络怎么样?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何续费美橙建站之星域名及服务?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
JavaScript模板引擎Template.js使用详解
如何在万网自助建站平台快速创建网站?
SQL查询语句优化的实用方法总结
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何用wdcp快速搭建高效网站?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧

