参考示例之“复制对象|拷贝对象|BeanUtils工具类学习”
// 设置需要拷贝的字段
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工具类学习”的更多相关文章
- JSON对象与XML相互转换工具类
依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId ...
- 第13天 JSTL标签、MVC设计模式、BeanUtils工具类
第13天 JSTL标签.MVC设计模式.BeanUtils工具类 目录 1. JSTL的核心标签库使用必须会使用 1 1.1. c:if标签 1 1.2. c:choos ...
- JavaWeb 之 BeanUtils 工具类
在上一个用户登录案例中,当从浏览器接收参数后,还需要创建 JavaBean 类,对其的属性每一项赋值,如果属性少,可以手动完成,但是当属性非常多,这时就发现非常不方便,在这里提供一个可以封装 Java ...
- BeanUtils 工具类
一.BeanUtils 概述 BeanUtils 是阿帕奇提供的一套专门用于将一些数据封装到java对象中的工具类; 名词:javaBean:特定格式的java类称为java ...
- 利用BeanUtils工具类封装表单数据
一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...
- JDBC--使用beanutils工具类操作JavaBean
1.在JavaEE中,Java类的属性通过getter,setter来定义: 2.可使用BeanUtils工具包来操作Java类的属性: --Beanutils是由Apache公司开发,能够方便对Be ...
- 在spring中获取代理对象代理的目标对象工具类
昨天晚上一哥们需要获取代理对象的目标对象,查找了文档发现没有相应的工具类,因此自己写了一个分享给大家.能获取JDK动态代理/CGLIB代理对象代理的目标对象. 问题描述:: 我现在遇到个棘手的问题,要 ...
- 丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!
在前几天的文章<为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?>中,我曾经对几款属性拷贝的工具类进行了对比. 然后在评论区有些读者反馈说MapStruct才是真 ...
- BeanUtils工具类copyProperties方法缺点及解决
使用类为spring-beans:4.3.13release包中的 org.springframework.beans.BeanUtils BeanUtils.copyProperties(Objec ...
- 把实体bean对象转换成DBObject工具类
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util ...
随机推荐
- git命令参考
git命令参考 前言 在版本管理中,我们常用到git或者svn去管理我们的代码. 因为嵌入式开发经常要用到Linux环境做开发,所以懂得一定的git命令对我们进行开发过程中的版本管理非常重要 创建仓库 ...
- [BZOJ3514] [Codechef MARCH14] GERALD07加强版 题解
名字感觉挺奇怪的. 考虑离线算法.首先答案就是用 \(n\) 减去连完边后的生成树森林边数.生成树当然就可以用 \(lct\) 求解了.我是不会告诉你这个时候我已经开始想回滚莫队了的. 考虑当我们倒序 ...
- STM32中如何使用printf()函数
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 在STM32串口通信程序中使用printf发送数据,非常的方便.可在刚开始使用的时候总是遇到问题,常见的是硬件访 ...
- DeepSeek “源神”启动!「GitHub 热点速览」
上周,DeepSeek 官方宣布将陆续发布 5 个开源项目.本周一开源社区就迎来了首发之作--FlashMLA!该项目开源后,不到一天 Star 数已突破 6k,并且还在以惊人的速度持续飙升. Gi ...
- 异地组网工具 Radmin_LAN:将远程计算机连接到单一本地网络
Radmin LAN是一款使用简单的免费软件产品,用于创建虚拟本地网络.该程序允许用户安全地连接位于防火墙后的计算机.为流量提供一个安全通道.可靠的端到端加密(256位AES)确保您的连接安全. Ra ...
- Hive - 多种表类型的CURD测试
关于torc.textfile.orc.es.hyperdrive表的CURD测试 TORC(支持事务的orc表)测试 TORC(分区表)测试 TEXTFILE 表测试 ORC 表测试 ES(Elas ...
- 【Python脚本】路径管理之pathlib
在Python的pathlib模块中,Path类和PurePath类是用于处理文件和目录路径的两个主要类.它们具有不同的目的和功能,以下是它们的主要异同点: 类的继承关系: Path类继承自PureP ...
- (C++实现)2-NAF
(C++实现)2-NAF 前言 任何一个非负整数,都有一个唯一的 NAF (Non-adjacent form) 表示. 因着课程的缘由,我不得不研究一下 NAF 是怎么实现的,也是现学现用. ...
- nginx 部署vue http、https
nignx配置文件 server { listen 80; server_name your_domain.com; return 301 https://$server_name$request_u ...
- composer remove 卸载依赖
remove 命令 remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除: $ composer remove monolog/monolog ...