java bean对象属性复制,将一个对象的属性值赋值给另一个对象,对象之间的复制方法

2023-11-06

注意依赖,springframework下的复制顺序为 (目标对象,新对象)
import org.springframework.beans.BeanUtils;

    public static void main(String[] args) {
        InterfaceCaseDO oldInterfaceCase = new InterfaceCaseDO();

        oldInterfaceCase.setCaseName("zhangsan");
        oldInterfaceCase.setId(1l);
        oldInterfaceCase.setSendBody("lis");
        oldInterfaceCase.setProtocol("wangsu");
        oldInterfaceCase.setUpdateUser("zhaoliu");

        InterfaceCaseDO newInterfaceCase = new InterfaceCaseDO();
        BeanUtils.copyProperties(oldInterfaceCase,newInterfaceCase);

        newInterfaceCase.setImId(1);
        System.out.println(newInterfaceCase.toString());
    }



特别注意,一定要注意看清楚自己的依赖,
如果是org.apache.commons.beanutils.BeanUtils
那么复制顺序为(新对象,目标对象)
import org.apache.commons.beanutils.BeanUtils;

    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        InterfaceCaseDO oldInterfaceCase = new InterfaceCaseDO();

        oldInterfaceCase.setCaseName("zhangsan");
        oldInterfaceCase.setId(1l);
        oldInterfaceCase.setSendBody("lis");
        oldInterfaceCase.setProtocol("wangsu");
        oldInterfaceCase.setUpdateUser("zhaoliu");

        InterfaceCaseDO newInterfaceCase = new InterfaceCaseDO();
        BeanUtils.copyProperties(newInterfaceCase,oldInterfaceCase);

        newInterfaceCase.setImId(1);
        System.out.println(newInterfaceCase.toString());
    }

}

另外,比如对象复制时,想排除某个属性,可以使用springframework的复制方法,也就是第一种方法,在方法上加上额外的参数,如下

比如排除掉bean的id和name属性,就可以这样写
 BeanUtils.copyProperties(oldInterfaceCase,newInterfaceCase,new String[]{"id","name"});

也可以写成
 BeanUtils.copyProperties(oldInterfaceCase,newInterfaceCase, "id","name");
 
如果想指定新对象的属性,比如id,在下面添加一个set就行了
BeanUtils.copyProperties(oldInterfaceCase,newInterfaceCase, "id","name");
newInterfaceCase.setImId(1);
这样复制的新对象就可以指定值了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java bean对象属性复制,将一个对象的属性值赋值给另一个对象,对象之间的复制方法 的相关文章

随机推荐

  • 【JavaScript基础】你真正了解如今的Js数组吗,看这篇就(Go)够了

    JavaScript基础 你真正了解如今的Js数组吗 看这篇就 Go 够了 博客说明 文章所涉及的部分资料来自互联网整理 当然还有自己个人的总结和看法 分享的目的在于共建社区和巩固自己 引用的资料如有侵权 请联系本人删除 幸好我在 感谢你来
  • 虚拟化原理之KVM

    2 1 kvm技术基础 KVM kernel based virtual machine 的名字 基于kernel的虚拟机 已经很准确的说出了kvm的设计思路 也就是依赖linux内核 完全利用linux内核来实现cpu的调度 内存管理的功
  • laravel 简介

    Laravel是一款基于MVC设计模式的PHP框架 提供了一系列便捷的API接口 包括数据库 路由 表单验证等等 使PHP开发更为快速和优雅 一言以蔽 Laravel为WEB艺术家而生 1 安装 先保证你已经安装好了PHP 接下来 你可以直
  • 调试osgEarth(三十三)分页瓦片卸载器子节点的作用--(3)渲染遍历的帧号和时间设置-TerrainCuller类 的构造函数--visitorData

    继续调试 每天调试一点点 又不累 又能够细品 这里似乎是存储visitorData临时数据的东东 很明显 这个为空 返回false isSpy false 也就是说visitorData的 dataStore里面的 table里面不存在cu
  • 毕设:基于CNN卷积神经网络的猫狗识别、狗品种识别(Tensorflow、Keras、Kaggle竞赛)

    基于卷积神经网络的图像识别算法及其应用研究 毕业快一年了 拿出来分享给大家 我和网上唯一的区别就是 我能够同时实现两个方案 猫狗识别和狗品种识别 我当时也是网上各种查 花了2 3个月的时间 一个萝卜一个坑走过来的 深度学习真的是深似海呀 不
  • 梅森素数(C语言求解)

    梅森数 Mersenne Prime 指的是形如 1的正整数 其中指数 n 是素数 如果一个梅森数是素数 则称其为梅森素数 另外 由因式分解法可以证明 如果 1 是素数 则 n 也一定是素数 例如 当 n 2 3 5 7 时 1 都是素数
  • 基于径向基神经网络RBF多输入多输出预测,RBF多变量回归预测,matlab代码。评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 导入数据 res xlsread 数据 xlsx 数据分析 num size 0 8 训练集占数据集比例 ou
  • AI新阶段:认知智能加速工业制造智能转型

    作者 工业互联网周刊 周宝冰 伴随全球数字化进程加快 人工智能技术与产业融合程度逐渐加深 能思考 会判断 的认知智能技术逐步应用于智能客服 智能推荐 智能营销 智能分析等诸多场景 不断释放产业应用价值 近期 华院计算技术 上海 股份有限公司
  • Centos 7安装Harbor

    Harbor 对于docker版本及docker compose版本有要求 根据需要安装 一 Docker搭建 安装最新版 1 安装docker wget qO https get docker com sh 2 配置加速器 cd etc
  • 关于脚本中使用nohup启动项目的问题

    1 在Jenkins中配置了sh home dubbo service bin start sh 使用以下脚本 usr bin env bash 省略 nohup java JAVA OPTS JAVA MEM OPTS JAVA DEBU
  • 小程序中关于红包雨的实现

    一 原型依据 在我这个项目中小程序端所需要实现的只有红包雨的下落动画和通屏背景图的兼容 关于红包点击金额的计算是由后端实现的 首先来看下需要实现的效果图 二 实现代码 首先是第一次进入的页面 在这个页面的时候会进行静默登录 静默登录成功的话
  • webpack : 无法加载文件 C:\Program Files\nodejs\webpack.ps1

    webpack 无法加载文件 C Program Files nodejs webpack ps1 1 问题 2 解决办法 1 问题 使用webpack打包是报错如下 webpack 无法加载文件 C Program Files nodej
  • LINUX系统下:Cuda+Cudnn+Tensorflow-GPU环境配置学习总结

    1 cuda cudnn安装 1 1下载cuda 1 1 1查看系统支持的cuda版本 可以安装低于该版本的 不能超过该版本 nvidia smi 1 1 2下载cuda cuda历史版下载 1 2 3安装 1 找到下载的cuda文件所在的
  • CUnit用法总结

    简介 CUnit是一个用C语言写的单元测试库 它是一个简单的测试框架 提供了丰富的断言语句来测试常用的数据类型 此外 对于跑测试用例和反馈测试结果 CUnit都有一些不同的接口 它可以编译成动态库或者静态库 基本框架 CUnit是一个可以跨
  • sqlhelper集成dynamic多数据源的分页问题(非教学向)

    一 问题描述 最近接手 顶锅 了公司的框架维护工作 第一项任务就是集成dynamic多数据源框架 dynamic官方使用文档 本文不是教学 有兴趣的小伙伴可以自己查阅文档 集成dynamic之后 一切都很顺利 但是测试到SQLHelper框
  • SQLITE学习之SQLITE基础知识(一)

    1 SQLITE常见命令 sqlite常用命令被称为 SQLite 的点命令 这些命令的不同之处在于它们不以分号 结束 我们只需在ubuntu终端界面上的命令提示符 下键入一个简单的 sqlite3 命令 在 SQLite 命令提示符 gt
  • python解数独

    在学典型优化问题模型与算法的时候发现 暑假的解数独的部分 可以设计三个模型 比如唯一余数 基础摒除法等 让他们循环运行 同时设计一个步数 多次循环来找到步数最少的解题路径 当然还会遇到这三个模型解决不了的问题 这时候就需要增加模型了 sud
  • docker save和docker export区别

    两者区别 docker save用于导出镜像到文件 包含镜像元数据和历史信息 docker export用于将当前容器状态导出至文件 类似快照 所以不包含元数据及历史信息 体积更小 此外从容器快照导入时也可以重新指定标签和元数据信息 一 导
  • LINUX 系统编程之文件IO

    文件IO 属于系统IO 是系统内核向用户空间提供的接口 直接调用内核提供的系统调用函数 头文件是unistd h 1 open char s flag mode 在fcntl h头文件种声明 函数的作用 创建或打开某个文件 最多包含三个参数
  • java bean对象属性复制,将一个对象的属性值赋值给另一个对象,对象之间的复制方法

    注意依赖 springframework下的复制顺序为 目标对象 新对象 import org springframework beans BeanUtils public static void main String args Inte