java中将一个实体类复制到另一个实体类的三种方法

这篇具有很好参考价值的文章主要介绍了java中将一个实体类复制到另一个实体类的三种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这两天在做发票识别时,遇到一个问题,有一张发票表(假设为invoice_OCR_success)和一张我根据发票表新建的表(假设为invoice_OCR_fail),两张表有些字段名是相同的,有时需要把其中一张表的实例在另一张表里保存一份,此时就用到了实体类的复制,以下我将列出三种尝试的方法。

方式一:通过转换为JSONObject

InvoiceOCRSuccess kkjfInvoice1 = new InvoiceOCRSuccess();

JSONObject kkjfInvoiceOcrFail1 = JSONObject.parseObject(JSONObject.toJSONString(InvoiceOCRFail));
JSONObject kkjfInvoice2 = JSONObject.parseObject(JSONObject.toJSONString(kkjfInvoice1));
for (String key:kkjfInvoiceOcrFail1.keySet()){
    if (kkjfInvoice2.containsKey(key)){
        kkjfInvoice2.put(key,kkjfInvoiceOcrFail1.getString(key));
    }
}
InvoiceOCRSuccesskkjfInvoice3 = JSONObject.toJavaObject(kkjfInvoice2, InvoiceOCRSuccess.class);

此时kkjfInvoiceOcrFail1 中有数据,新建一个kkjfInvoice1 ,想将kkjfInvoiceOcrFail1 中重复的字段存入kkjfInvoice1 。但这个方法不会生效,因为这里new的对象是个空对象,它在转为JSONObject 时变为了空,for循环赋值那一步并没有赋值成功,大家根据实际情况改造一下就好了。

方式二:通过Map方式赋值

BeanMap beanMap = BeanMap.create(InvoiceOCRSuccess);
BeanMap beanMap1 = BeanMap.create(InvoiceOCRFail);
Map<String,Object> map = new HashMap<>();
for (Object key:beanMap.keySet()){
    String key1 = (String) key;
    if (beanMap1.containsKey(key)){
        map.put(key1,beanMap1.get(key));
    }
}
JSONObject jsonObject1 = new JSONObject();
jsonObject1.putAll(map);
InvoiceOCRSuccess kkjfInvoice2 = jsonObject1.toJavaObject(InvoiceOCRSuccess.class);

这个BeanMap是org.springframework.cglib.beans包下的类,用于将实例转为map形式。用这种方法是要注意,这个BeanMap中自带的put方法是不起作用的,具体原因有兴趣可以自行查阅,找到了可以让我也看看,new HashMap<>()的目的就是为了解决这个问题。

方式三:BeanUtils.copyProperties( @NotNull Object source,@NotNull Object target) 强烈推荐!!!

该方法是spring项目BeanUtils工具自带的方法,非常的好用。第一个参数是你的源数据,第二个参数是你要复制的目标对象,然后就复制成功了,nice!文章来源地址https://www.toymoban.com/news/detail-540881.html

到了这里,关于java中将一个实体类复制到另一个实体类的三种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java获取指定文件夹下目录下所有视频并复制到另一个地方
  • java中把一个list转tree的三种方法——工具类

    如何使用: 如果你的类中主键名称为id,父节点id名称为parentId,子节点列表名称为children,数据库中顶层父节点id值为“0”,可以直接调用只需传入需要转换list的方法。否则需要传入相应的字段名称,或者修改代码。 三种方式对比 前两种方法的时间复杂度都和叶子节点的个

    2024年01月24日
    浏览(8)
  • linux怎么复制文件到另一个文件夹

    1、linux怎么复制文件到另一个文件夹 2、Linux怎么复制文件进入文件系统中? 3、在Linux系统中,要将文件复制到另一个目录中,为防止意外覆盖相同文件名... 4、linux下怎样复制文件并且重命名文件? 可以使用cp命令来实现文件复制。例如,如果要将文件filetxt复制到文件夹folder2中,

    2024年02月10日
    浏览(11)
  • 从一个服务器复制东西到另一个服务器的命令

    您可以使用scp命令从一个服务器复制文件或目录到另一个服务器。以下是基本的scp命令格式: 其中,source是要复制的文件或目录的路径,destination是复制的目标路径,可以是本地路径或远程服务器路径。如果destination是远程服务器路径,则需要在路径前加上用户名和服务器地

    2024年02月14日
    浏览(10)
  • 将一个 PostgreSQL 数据库复制到另一个数据库中

    将一个 PostgreSQL 数据库复制到另一个数据库中

    以管理员身份进入cmd窗口,输入如下命令 语法: 示例:

    2024年02月22日
    浏览(9)
  • SpringBoot—@ComponentScan注解过滤排除不加载某个类的三种方法

    在引用jar包的依赖同时,经常遇到有包引用冲突问题。一般我们的做法是在Pom文件中的dependency节点下添加exclusions配置,排除特定的包。 这样按照包做的排除范围是比较大的,现在我们想只排除掉某个特定的类,这时我们怎么操作呢? 方法一:pom中配置排除特定包 缺点:排

    2024年02月15日
    浏览(11)
  • 从一个word里面复制表格到另一个word时,表格变形的问题

    从一个word里面复制表格到另一个word时,表格变形的问题

    复制过来保留源格式,检查段落、页边距里面的格式都和原始word一致后,仍然表格变形。 这时点页边距-自定义页边距-文档网格 看字符数是不是一致的

    2024年03月10日
    浏览(10)
  • 将一个服务器上的文件复制到另一个服务器中的容器里

    步骤: 将A服务器上的文件复制到B服务器上 将B服务器上的文件复制到指定容器中 (将本地文件复制到服务器上同理) 使用scp命令 1. 复制文件 命令格式: scp local_file remote_username@remote_ip:remote_folder 2. 复制目录 命令格式: scp -r local_folder remote_username@remote_ip:remote_folder 注意 :

    2024年02月07日
    浏览(12)
  • 数据库中的字段名与实体类中的属性名不能一一对应时的三种处理方式

    数据库中的字段名与实体类中的属性名不能一一对应时的三种处理方式

    当查询结果的列名和java对象的属性名对应不上时需要采用下列方式进行处理:         第一种方式:在查询语句中使用\\\"as\\\" 给列起别名         第二种方式:使用resultMap结果映射         第三种方式:开启驼峰命名自动映射(配置settings) 实体类Car: packa

    2024年02月09日
    浏览(8)
  • Java---使用lombok简化实体类的编写----不要再写getter+sertter方法了

    目录 使用lombok简化实体类的编写 首先: 加入lombok依赖: 然后 加上一个注解:@Data    删除原来实体类中的方法 加上一个注解:@Data    注意:@Data(包含了:@Setter @Getter @ToString @EqualsAndHashCode)但是 不包含构造方法的注解可以手动加上: @NoArgsConstructor @AllArgsConstructor

    2024年02月14日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包