BeanUtils.copyProperties作用

文章目录

  • 一、作用
  • 二、举例
    • (1)新建两个实体类
    • (2)pom引入依赖
    • (3)main方法测试
    • (4)结果输出
    • (5)结论

一、作用

用来做对象间的copy。

二、举例

(1)新建两个实体类

package org.example;import java.util.Date;public class Student {private String name;private String age;private String tel;private Boolean isno;private Date time;public Student() {}public Student(String name, String age, String tel, Boolean isno, Date time) {this.name = name;this.age = age;this.tel = tel;this.isno = isno;this.time = time;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public Boolean getIsno() {return isno;}public void setIsno(Boolean isno) {this.isno = isno;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", tel='" + tel + '\'' +", isno=" + isno +", time=" + time +'}';}
}
package org.example;import java.util.Date;
import java.util.Objects;public class Person {private String name;private int age;private String phone;private Boolean isno;private Date time;public Person() {}public Person(String name, int age, String phone, Boolean isno, Date time) {this.name = name;this.age = age;this.phone = phone;this.isno = isno;this.time = time;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public Boolean getIsno() {return isno;}public void setIsno(Boolean isno) {this.isno = isno;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Person person = (Person) o;return Objects.equals(name, person.name) && Objects.equals(age, person.age) && Objects.equals(phone, person.phone);}@Overridepublic int hashCode() {return Objects.hash(name, age, phone);}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", phone='" + phone + '\'' +", isno=" + isno +", time=" + time +'}';}
}

(2)pom引入依赖

因为BeanUtils依赖于spring-beans的依赖包

<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.1.5.RELEASE</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>1.7.22</version></dependency>

(3)main方法测试

    public static void main(String[] args) {Student student = new Student("zhangsan", "23", "2324234",true,new Date());Person person = new Person("LISI", 12, "876543",false,new Date(2017,9,9));BeanUtils.copyProperties(student, person);System.out.println(student);System.out.println(person);}

(4)结果输出

Student{name='zhangsan', age=23, tel='2324234', isno=true, time=Mon May 06 17:49:42 CST 2024}
Person{name='zhangsan', age=23, phone='876543', isno=true, time=Mon May 06 17:49:42 CST 2024}

(5)结论

只要两个实体的属性名称和类型都相同,就可以做到拷贝
BeanUtils.copyProperties(A,B);
把A拷贝到B

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu部署前后端分离项目(前端vue,后端jar包)

一. Vue部署 1. 服务器安装node.js 2. 安装nginx 3. 上传vue包 将打包后的vue静态资源包dist文件夹&#xff0c;上传到服务器指定目录&#xff0c;并给该目录赋予相应权限。 4. 配置nginx (1) 创建vue项目配置文件 sudo vim /etc/nginx/conf.d/your-vue-project.conf (2)…

视频号小店在行业内的门槛高不高?有门槛是好事还是坏事?

大家好&#xff0c;我是电商小V 现在伴随着时代的慢慢发展&#xff0c;很多人都是想找一个好一点的创业项目&#xff0c;现在找创业项目都是找一些稍微有门槛的项目&#xff0c;没有门槛的话&#xff0c;要不然刚开始去做&#xff0c;项目就泛滥了&#xff0c;项目的红利期直接…

【AI】深度学习框架的期望与现实 机器学习编译尚未兑现其早期的一些承诺……

深度学习框架的期望与现实 机器学习编译尚未兑现其早期的一些承诺…… 来自&#xff1a;Axelera AI 资深软件工程师 Matthew Barrett 原帖是linkedin帖子&#xff1a; https://linkedin.com/posts/matthew-barrett-a49929177_i-think-its-fair-to-say-that-ml-compilation-ac…

GPT带我学-设计模式12-状态模式

啥是状态模式 状态模式是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态发生改变时改变其行为。状态模式将对象的状态封装成不同的类&#xff0c;并使得对象在运行时可以动态地改变状态&#xff0c;从而改变对象的行为。状态模式的主要目的是促进代码的复用和灵活…

Terraform资源地址

在编码时有时会需要引用一些资源的输出属性或是一些模块的输出值&#xff0c;这都涉及到如何在代码中引用特定模块或是资源。另外在执行某些命令行操作时也需要显式指定一些目标资源&#xff0c;这时要掌握Terraform的资源路径规则。 一个资源地址是用以在一个庞大的基础设施中…

Python_4-远程连接Linux

文章目录 使用Python通过SSH自动化Linux主机管理代码执行ls结果&#xff1a;文件传输&#xff1a; 使用Python通过SSH自动化Linux主机管理 在系统管理与自动化运维中&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一个常用的协议&#xff0c;用于安全地访问远程计算机…

FTP协议与工作原理

一、FTP协议 FTP&#xff08;FileTransferProtocol&#xff09;文件传输协议&#xff1a;用于Internet上的控制文件的双向传输&#xff0c;是一个应用程序&#xff08;Application&#xff09;。基于不同的操作系统有不同的FTP应用程序&#xff0c;而所有这些应用程序都遵守同…

富格林:累积经验阻挠黑幕之手

富格林认为&#xff0c;近年来现货黄金投资市场越发火热&#xff0c;许多投资新手纷纷涌入现货黄金市场中。不过&#xff0c;在这需要提醒大家的是要提防黑幕阻挠我们顺利盈利&#xff0c;选择正规可靠的平台进行开户&#xff0c;这样可以保证投资环境的安全稳定。下面富格林将…

水泥分类和使用方式 宁波水泥菱湖新阳水泥厂325鄞州东钱湖春晓咸祥海螺425水泥镇海骆驼庄市

水泥分类和使用方式 宁波水泥菱湖新阳水泥厂325鄞州东钱湖春晓咸祥海螺425水泥镇海骆驼庄市 水泥是一种重要的建筑材料&#xff0c;广泛应用于建筑、桥梁、隧道等各种土木工程项目中。根据不同的分类标准&#xff0c;水泥可以分为多种类型&#xff0c;每种类型的水泥都有其特定…

怎么给word文件名批量替换部分文字?word设置批量替换文字教程

批量替换Word文件名中的几个字&#xff0c;对于经常处理大量文件的人来说&#xff0c;是一项非常实用的技能。以下是一个详细的步骤指南&#xff0c;帮助你快速完成这项任务。 首先&#xff0c;你需要准备一个可以批量重命名文件的工具。市面上有很多这样的工具可供选择&#x…

win10禁止自动更新的终极方法

添加注册表值 1.运行&#xff0c;输入regedit 2.打开注册表编辑器依次进入以下路径“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings”。 3.在Settings项中&#xff0c;新建DWORD&#xff08;32位&#xff09;值(D)&#xff0c;重命名为以下命名“Fl…

easy_ssti_ctfshow_2023愚人杯

https://ctf.show/challenges#easy_ssti-3969 2023愚人杯有提示app.zip&#xff0c;访问 https://1f660587-5340-4b20-b929-c4549d9a5d4b.challenge.ctf.show/app.zip得到压缩包&#xff0c;拿到一个py文件 可以看到参数名是name&#xff0c;对参数进行筛选&#xff0c;包含ge…

人力资源管理新视野:挖掘员工潜力,共筑卓越未来

在21世纪的商业环境中&#xff0c;企业的成功不再仅仅依赖于资本、技术和市场策略&#xff0c;而更多地依赖于其人力资源的有效管理。人力资源管理的新视野正致力于挖掘员工的潜力&#xff0c;为企业创造持续的价值&#xff0c;共筑卓越的未来。 一、员工潜力的挖掘 员工是企业…

Linux如何查看JDK的安装路径

方法1 echo $JAVA_HOME 如果配置了系统就会输出配置为JAVA_HOME的jdk的的位置&#xff0c;如果没有配置就没有输出&#xff0c;推荐使用方法2 方法2(推荐) 关键命令分别为 1. which java 2. ls -lrt /usr/bin/java &#xff08;路径依照自己的输出灵活去改&…

《Fundamentals of Power Electronics》——脉宽调制器建模

下图给出了一个简单脉宽调制器电路的原理图。 脉宽调制器电路产生一个用于指令转换器功率管导通和关断的逻辑信号δ(t)。该逻辑信号δ(t)是周期性的&#xff0c;其频率为fs&#xff0c;占空比为d(t)。脉宽调制器的输入是一个模拟控制信号vc(t)。脉宽调制器的作用是产生一个与模…

Qt QShortcut快捷键类详解

1.简介 QShortcut是一个方便的工具类&#xff0c;用于在应用程序中创建快捷键。通过设置快捷键和关联的处理函数&#xff0c;可以实现快速执行某个操作的功能。 // 创建一个快捷键&#xff0c;关联到MyWidget类的keyPressEvent()函数 QShortcut *shortcut new QShortcut(QKe…

生产管理驾驶舱模板分享,制造业都来抄作业!

今天要讲的是一张从组织、生产车间、物料、仓库、时间等不同维度&#xff0c;展示产能、产量、投入成本、产能达成率等关键信息&#xff0c;让企业运营决策者全面了解生产产能情况、产量情况、投入成本情况、产能达成率情况的BI生产管理驾驶舱模板。这是奥威BI标准方案为设有生…

问题管理员的工作角色、职责和技能

问题管理就是识别、分析和解决反复出现的根本原因问题并永久修复它们。听起来很简单对吧&#xff0c;不幸的是&#xff0c;情况并非总是如此。对于组织来说&#xff0c;IT问题管理一直是一门棘手的 ITSM 学科。一个经常被忽视的关键因素是有效的问题 管理不仅仅是工具和流程。 …

Yarn的安装和使用详细教程(Mac/Window)

目录 Yarn是什么&#xff1f; Mac安装Yarn 使用Homebrew安装Yarn 使用npm安装Yarn Windows安装Yarn 使用npm安装Yarn Yarn使用 常用命令&#xff1a; 特殊命令&#xff1a; Yarn是什么&#xff1f; Yarn是一个流行的包管理工具&#xff0c;用于管理JavaScript项目的依…

Linux的打包压缩

为什么要打包压缩 文件传输: 在网络上传输多个文件时&#xff0c;可能会因为文件的数量和大小造成传输效率低下。打包可以将多个文件合并为一个文件进行传输&#xff0c;减少网络连接的次数&#xff0c;避免网络传输的开销。压缩文件的体积更小&#xff0c;可以减少网络带宽的消…