java中对象和Map互相转换的几种方式_撖寡情頧柒ap-程序员宅基地

技术标签: java  开发语言  

在Java中,将对象和Map相互转换是常见的操作,可以通过不同的方式实现这种转换。以下是几种常见的方法以及示例说明:

1. 使用Hutool工具类

Hutool是一个优秀的Java工具包,提供了丰富的工具方法,其中就包括对象和Map之间转换的工具方法。

示例:

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import java.util.Map;

// 使用示例
Person person = new Person();
person.setName("Alice");
person.setAge(30);

// 对象转换为Map
Map<String, Object> personMap = BeanUtil.beanToMap(person);
System.out.println(personMap);  // 输出:{name=Alice, age=30}

// Map转换为对象
Person newPerson = BeanUtil.mapToBean(personMap, Person.class, true);
System.out.println(newPerson.getName());  // 输出:Alice

Hutool的BeanUtil提供了beanToMapmapToBean等方法,可以方便地进行对象和Map之间的转换。这些方法减少了开发者的工作量,并且在性能和易用性方面做了一定的优化。

2. 使用Jackson库

Jackson是一个流行的Java库,可以方便地进行对象和JSON数据之间的转换。通过Jackson的ObjectMapper,可以将对象转换为Map,反之亦然。

示例:

import com.fasterxml.jackson.databind.ObjectMapper;

// 使用示例
Person person = new Person();
person.setName("Alice");
person.setAge(30);

ObjectMapper objectMapper = new ObjectMapper();

// 对象转换为Map
Map<String, Object> personMap = objectMapper.convertValue(person, Map.class);
System.out.println(personMap);  // 输出:{name=Alice, age=30}

// Map转换为对象
Person newPerson = objectMapper.convertValue(personMap, Person.class);
System.out.println(newPerson.getName());  // 输出:Alice

3. 使用反射实现通用转换

通过Java的反射机制,可以动态地获取和设置对象的属性,从而实现对象和Map之间的转换。

示例:

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class ObjectMapConverter {
   
    

    public static Map<String, Object> objectToMap(Object obj) throws Il
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fudaihb/article/details/134803107

智能推荐

LINUX安装(Centos8系统)-程序员宅基地

文章浏览阅读4.4k次,点赞4次,收藏10次。共同学习,共同努力。与天奋斗,其乐无穷;与地奋斗,其乐无穷;与人奋斗,其乐无穷。_centos8

nRF24L01无线模块使用1---电平转换-程序员宅基地

文章浏览阅读2.5k次。手里还有若干stc12c5a60s2,所以决定用它来驱动nRF24L01模块nRF24L01模块供电是3.3v的,所以i/o电平需要跟5v的stc12c5a60s2兼容。看了nRF24L01的手册,查了网上一些网友的使用心得,发现nRF24L01的I/O可以直接跟5V的51单片机直连。供电加一片ASM1117-3.3即可

分库分表介绍以及shardingjdbc实现分库分表-程序员宅基地

文章浏览阅读1.8k次,点赞6次,收藏18次。分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。分库分表是由分库和分表这两个独立概念组成的,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起叫做分库分表。通过一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果(响应速度快),以此提升整体数据库性能。_分库分表

Python-Django毕业设计校园学生管理系统(程序+Lw)_django学生信息管理系统源码-程序员宅基地

文章浏览阅读278次。该项目含有源码、文档、程序数据库、配套开发软件、软件安装教程项目运行环境配置:Pychram社区版py项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;3.mysql环境:建议是用5.7版本均可。_django学生信息管理系统源码

HTML5+CSS大作业——汽车专题网页设计(1页) dreamweaver作业静态HTML网页设计模板_汽车专题页-程序员宅基地

文章浏览阅读1k次。HTML5+CSS大作业——汽车专题网页设计(1页) dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜欢的可以下载!获取更多源码PC电脑_汽车专题页

【uniapp】uniapp中刷新本页面_uniapp刷新当前页面-程序员宅基地

文章浏览阅读5.7w次,点赞23次,收藏78次。记录刷新当前页面方法_uniapp刷新当前页面

随便推点

struts2 文件上传与下载原理-程序员宅基地

文章浏览阅读514次,点赞27次,收藏10次。大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。麻烦帮忙转发一下这篇文章+关注我《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

学生成绩管理系统设计报告python_学生成绩管理系统(python)的实现-程序员宅基地

文章浏览阅读621次。学生成绩管理系统功能:增加。删除。改变。检查。排序。这五个部分组成。都是由独立的功能。信息的访问字典形式表达。# student_ #插入学生信息def input_student():信息=[]尽管如此:n =输入(\u201C请输入学生姓名:\u201D)如果不是n: breaka = int(输入(\lis =排序(L键=λd: d(\u201C分数\u201D),反向= True) out..._python课程学生成绩管理系统设计

WEEK4 C 作业_java:求下列式子的值:1+1/2+1/......+1/99+1/100,将结果输出。-程序员宅基地

文章浏览阅读355次。1 输入一行字符,分别统计出其中字母,空格,数字和其他字符的个数#include void main(){ int letter, space, num, other; char ch; letter = space = num = other = 0; while ((ch = getchar ()) != '\n') { _java:求下列式子的值:1+1/2+1/......+1/99+1/100,将结果输出。

Pycharm 一键加引号、批量加引号_pycharm一键加引号-程序员宅基地

文章浏览阅读5.8k次,点赞9次,收藏24次。引言:很多时候我们处理脚本(例如涉及接口脚本)会使用大量键值对加引号的操作,如果是只有个别的键值对需要添加引号还好,如果量较大,手动添加引号无疑是很糟心的事情。**解决方式如下:**..._pycharm一键加引号

anchor-free目标检测_关键点检测和目标检测的区别-程序员宅基地

文章浏览阅读5k次,点赞6次,收藏43次。本文介绍anchor-free目标检测的发展。_关键点检测和目标检测的区别

dbm,dbi,dbd,db,dbc的区别是什么_dbic dbi-程序员宅基地

文章浏览阅读2k次。都是功率增益的单位。1、dBmdBm是一个表征功率绝对值的量,计算公式为:10lgP(功率值/1mw)。[例1] 如果发射功率P为1mw,折算为dBm后为0dBm。[例2] 对于40W的功率,按dBm单位进行折算后的值应为:10lg(40W/1mw)=10lg(40000)=10lg4+10lg10+10lg1 000=46dBm。2、dBi 和dBddBi和dBd是表征增..._dbic dbi

推荐文章

热门文章

相关标签