// 设置需要拷贝的字段
Set<String> targetSet = new HashSet<>();
targetSet.addAll(Arrays
.asList("totalRefund", "actualAdvertisingCost", "expensesOfTaxation"));
// 调用拷贝方法
copyProperties(combinationIncomeCosts.get(0), resultBeneficiary, targetSet);

将A对象的所有数据拷贝到B对象中

前提:保证两个对象的字段相同,B对象可以比A对象多字段

package org.springframework.beans;
BeanUtils.copyProperties(A, B);

将A对象的部分值数据拷贝到B对象中

这里可以调用方案,排除掉部分不需要的字段

import org.springframework.beans.BeanUtils;

BeanUtils.copyProperties(A, B, 排除的字段[可以数组,列表等]);

还可以优化,只要某些字段

// 设置需要拷贝的字段
Set<String> targetSet = new HashSet<>();
targetSet.addAll(Arrays.asList("totalRefund", "actualAdvertising", "expenses", "compensate"));
// 调用自定义拷贝方案
copyProperties(A, B, targetSet);
  /**
* 赋值指定字段值
*
* @param src
* @param target
* @param fieldSet
*/
public static void copyProperties(Object src, Object target, Set<String> fieldSet)
{
     // 过滤出所有不要的字段
String[] filteredPropertyNames = Arrays.stream(BeanUtils.getPropertyDescriptors(src.getClass()))
.map(PropertyDescriptor::getName).filter(e -> !fieldSet.contains(e)).toArray(String[]::new);
     // 实际上还是调用了排除的方案,将不要的字段加入到排除中
BeanUtils.copyProperties(src, target, filteredPropertyNames);
}

参考示例之“复制对象|拷贝对象|BeanUtils工具类学习”的更多相关文章

  1. JSON对象与XML相互转换工具类

    依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId ...

  2. 第13天 JSTL标签、MVC设计模式、BeanUtils工具类

    第13天 JSTL标签.MVC设计模式.BeanUtils工具类 目录 1.    JSTL的核心标签库使用必须会使用    1 1.1.    c:if标签    1 1.2.    c:choos ...

  3. JavaWeb 之 BeanUtils 工具类

    在上一个用户登录案例中,当从浏览器接收参数后,还需要创建 JavaBean 类,对其的属性每一项赋值,如果属性少,可以手动完成,但是当属性非常多,这时就发现非常不方便,在这里提供一个可以封装 Java ...

  4. BeanUtils 工具类

    一.BeanUtils 概述     BeanUtils 是阿帕奇提供的一套专门用于将一些数据封装到java对象中的工具类;          名词:javaBean:特定格式的java类称为java ...

  5. 利用BeanUtils工具类封装表单数据

    一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...

  6. JDBC--使用beanutils工具类操作JavaBean

    1.在JavaEE中,Java类的属性通过getter,setter来定义: 2.可使用BeanUtils工具包来操作Java类的属性: --Beanutils是由Apache公司开发,能够方便对Be ...

  7. 在spring中获取代理对象代理的目标对象工具类

    昨天晚上一哥们需要获取代理对象的目标对象,查找了文档发现没有相应的工具类,因此自己写了一个分享给大家.能获取JDK动态代理/CGLIB代理对象代理的目标对象. 问题描述:: 我现在遇到个棘手的问题,要 ...

  8. 丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!

    在前几天的文章<为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?>中,我曾经对几款属性拷贝的工具类进行了对比. 然后在评论区有些读者反馈说MapStruct才是真 ...

  9. BeanUtils工具类copyProperties方法缺点及解决

    使用类为spring-beans:4.3.13release包中的 org.springframework.beans.BeanUtils BeanUtils.copyProperties(Objec ...

  10. 把实体bean对象转换成DBObject工具类

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util ...

随机推荐

  1. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could

    问题分析及解决方案 问题原因: Mybatis没有找到合适的加载类,其实是大部分spring - datasource - url没有加载成功,分析原因如下所示. DataSourceAutoConf ...

  2. QT5笔记: 19. QFileSystemModel 联动 QListView QTableView QTreeView

    Model 指的是数据 View 指的是界面,View不用设置,只需要和Model进行绑定,绑定完成之后就是Model的格式了 例子:*本例子中QListView QTableView QTreeVi ...

  3. 用 Emacs 写代码有哪些值得推荐的插件

    以下是一些用于 Emacs 写代码的值得推荐的插件: Ido-mode:交互式操作模式,它用列出当前目录所有文件的列表来取代常规的打开文件提示符,能让操作更可视化,快速遍历文件. Smex:可替代普通 ...

  4. 八米云-ESXi虚拟机安装教程

    疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 准备阶段: 八米云启动U盘(制作方法可参看<制 ...

  5. docker - [15] springboot微服务打包docker镜像

    步骤: 1.构建Springboot项目 2.打包应用 3.编写dockerfile 4.构建docker镜像 5.发布运行 一.构建Springboot项目 (1)创建一个SpringBoot(以下 ...

  6. 寻找旋转排序数组中的最小值 II

    地址:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/ <?php /** 154. 寻找旋转排 ...

  7. 基于C语言实现UDP服务器

    UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,适用于对实时性有较高要求的应用场景,如视频流传输.语音通信.在线游戏等.与TCP不同,UDP不保证数据的 ...

  8. C#通过FTP获取服务端文件

    一.简介   实际需求是在前端修改了配置文件后,由上位机统一分发给所有设备,因为下位机支持FTP协议,因此选用FTP来实现文件传输功能. 二.准备工作 1.FTP服务搭建 FTP服务端选用FileZi ...

  9. 模型蒸馏(Distillation)案例--从DeepSeek-R1-1.5B 到 Qwen-2.5-1.5B 的模型蒸馏

    DeepSeek-R1-1.5B 到 Qwen-2.5-1.5B 的模型蒸馏(Distillation) 本文重点进行DeepSeek-R1-1.5B 到 Qwen-2.5-1.5B 的模型蒸馏(Di ...

  10. 边缘检测及Canny算法

    对边缘的直观理解 边缘有助于我们对图像进行语义理解.直观上,边缘发生在图像强度值变化剧烈的地方 如何描述变化?自然是用导数/梯度 如上图,我们对图中的信号在水平方向上求导,可以得到右侧的导数图像,可以 ...