将map转对象是一种常见的操作,下面详解常见的3种map转对象方法@mikechen
手动映射字段
你可以遍历Map中的键值对,然后将每个键对应的值映射到对象的属性,这通常涉及到手动编写代码。
如下所示:
Map<String, Object> map = new HashMap<>(); map.put("name", "John"); map.put("age", 30); Person person = new Person(); person.setName((String) map.get("name")); person.setAge((int) map.get("age"));
这是一种基本的方法,适用于简单的情况。
使用BeanUtils类
Apache Commons BeanUtils是一个常用的工具库,提供了一种方便的方式将Map映射到Java对象的属性。
如下所示:
import org.apache.commons.beanutils.BeanUtils; Map<String, String> map = new HashMap<>(); map.put("name", "John"); map.put("age", "30"); Person person = new Person(); BeanUtils.populate(person, map);
上面使用了BeanUtils.populate方法,将Map的键值对自动映射到对象的属性。
使用Jackson库
Jackson是一个流行的Java库,用于处理JSON数据,但它也可以用于将Map转换为对象。
如下所示:
ObjectMapper objectMapper = new ObjectMapper(); Map<String, Object> map = new HashMap<>(); map.put("name", "John"); map.put("age", 30); Person person = objectMapper.convertValue(map, Person.class);
使用Jackson,你可以使用ObjectMapper来进行转换。
根据具体的项目和需求,选择适合的方式来进行Map到对象的转换。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》