Java中常用实体类值复制的方法在我们实际开发过程中,经常会遇到将一个实体类复制到另一个实体类的情况。本文将介绍在Jav
题记
人生最重要的不是你站在哪里,而是你朝着什么方向走。
人生就像一场马拉松比赛,不在乎起点的高低,只在乎坚持的远近和努力的程度。
实际场景
在我们实际开发过程中,经常会遇到将一个实体类复制到另一个实体类的情况。在使用过程中,有好多种方式可以进行处理,比如:使用setget方式或者构造函数方式,JSONObject,第三方库等等。本文将介绍在Java中实现实体类值复制的一些方法,方便后期的使用。
常用方法
手动方法
是一种最简单、最简单的方法,主要通过setget进行获取与赋值,也可简化成使用构造方法方式。如下:
UserDto userDto=new UserDto();
userDto.setAddress("中国");
userDto.setAge(20);
userDto.setName("张三");
userDto.setId(1);
userDto.setPhone("18788889999");
User user=new User();
user.setId(userDto.getId());
user.setName(userDto.getName());
user.setPhone(userDto.getPhone());
user.setAddress(userDto.getAddress());
user.setAge(userDto.getAge());
通过转化为JSONObject
需要先将一个实体类转化成JSONObject,再将这个JSONObject转化成对应的实体类。如下:
UserDto userDto=new UserDto();
userDto.setAddress("中国");
userDto.setAge(20);
userDto.setName("张三");
userDto.setId(1);
userDto.setPhone("18788889999");
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(userDto));
User user = JSONObject.toJavaObject(jsonObject, User.class);
这块,如果有自己封装的json转化实体类的话,也是可以进行使用并进行转化的。
使用 BeanUtils 库
使用BeanUtils库的时候,需要注意下,有两个包,一个在org.springframework.beans.BeanUtils,另一个在org.apache.commons.beanutils.BeanUtils,方法使用都是一样,但是执行结果是不一样。例如:
UserDto userDto=new UserDto();
User user=new User();
BeanUtils.copyProperties(userDto, user);
如果,BeanUtils引入的是org.springframework.beans.BeanUtils, 是userDto复制到user
如果,BeanUtils引入的是org.apache.commons.beanutils.BeanUtils, 是user复制到userDto
使用 ModelMapper 库
ModelMapper 是一个强大的实体类值复制工具,可以看下简单的实例:
先要在 pom.xml 文件中添加 ModelMapper 的依赖:
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.8</version>
</dependency>
代码实现:
UserDto userDto=new UserDto();
userDto.setAddress("中国");
userDto.setAge(20);
userDto.setName("张三");
userDto.setId(1);
userDto.setPhone("18788889999");
ModelMapper modelMapper = new ModelMapper();
User user = modelMapper.map(userDto, User.class);
总结
本文浅浅介绍了在实际开发过程,java进行实体类值复制的一些方法。
在使用过程中,可自行根据需求或者场景进行选择适合的方式进行处理,达到提高开发的效率、简化代码的效果即可。或者说,也可根据自己的喜好、习惯、经验进行选择,哈哈哈!!!
如果在后期的工作中有发现其他方法的话,会进行添加与修改。
如果掘友们,还有其他的方法的话,也可以进行探讨呦!
展望
坚持你所热爱的,热爱你所坚持的,剩下的,交给时间就好。
The future belongs to those who believe in the beauty of their dreams.
转载自:https://juejin.cn/post/7418084847615459340