Java对象间属性值的复制-Spring的BeanUtil
来源:互联网 发布:网络流量分析软件 编辑:程序博客网 时间:2024/05/18 17:45
需求:两个对象中有相同类型相同名称的属性,把一个对象中的属性值复制到另一个对象。
先把spring那5个核心的jar包导入到项目中
spring-core-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
新建一个Person类
public class Person { private Double avgScore; private String courseName; private int num; private Date createTime; public Double getAvgScore() { return avgScore; } public void setAvgScore(Double avgScore) { this.avgScore = avgScore; } public String getCourseName() { return courseName; } public void setCourseName(String courseName) { this.courseName = courseName; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } @Override public String toString() { return "Person [avgScore=" + avgScore + ", courseName=" + courseName + ", num=" + num + ", createTime=" + createTime + "]"; }}
新建一个Student类
public class Student extends Person{ private String studentName; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } @Override public String toString() { return "Student [studentName=" + studentName + ", getAvgScore()=" + getAvgScore() + ", getCourseName()=" + getCourseName() + ", getNum()=" + getNum() + ", getCreateTime()=" + getCreateTime() + ", toString()=" + super.toString() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + "]"; }}
编写一个测试类
public class Test { @Test public void test(){ Person p=new Person(); p.setAvgScore(3.0); p.setCourseName("courseName"); p.setCreateTime(new Date()); p.setNum(2); Student s=new Student(); s.setStudentName("studentName"); BeanUtils.copyProperties(p, s); System.out.println(p); System.out.println("-------------------"); System.out.println(s); }}
运行结果为
Person [avgScore=3.0, courseName=courseName, num=2, createTime=Wed Aug 30 08:41:56 CST 2017]-------------------Student [studentName=studentName, getAvgScore()=3.0, getCourseName()=courseName, getNum()=2, getCreateTime()=Wed Aug 30 08:41:56 CST 2017, toString()=Person [avgScore=3.0, courseName=courseName, num=2, createTime=Wed Aug 30 08:41:56 CST 2017], getClass()=class cn.eaglezsx.test.Student, hashCode()=5784348]
可以看到Person对象中的属性值复制到了Student中
需求:将一个list中对象的属性值复制到另一个list中
@Test public void t2(){ List<Person> pL=new ArrayList<>(); Person p=new Person(); p.setAvgScore(3.0); p.setCourseName("courseName"); p.setCreateTime(new Date()); p.setNum(2); Person p2=new Person(); p2.setAvgScore(4.0); pL.add(p); pL.add(p2); List<Student> sL=new ArrayList<>(); for(Person person:pL){ Student student=new Student(); BeanUtils.copyProperties(person, student); sL.add(student); } System.out.println(pL); System.out.println("-----------------------"); System.out.println(sL); }
运行结果为
[Person [avgScore=3.0, courseName=courseName, num=2, createTime=Wed Aug 30 08:48:49 CST 2017], Person [avgScore=4.0, courseName=null, num=0, createTime=null]]-----------------------[Student [studentName=null, getAvgScore()=3.0, getCourseName()=courseName, getNum()=2, getCreateTime()=Wed Aug 30 08:48:49 CST 2017, toString()=Person [avgScore=3.0, courseName=courseName, num=2, createTime=Wed Aug 30 08:48:49 CST 2017], getClass()=class cn.eaglezsx.test.Student, hashCode()=32846040], Student [studentName=null, getAvgScore()=4.0, getCourseName()=null, getNum()=0, getCreateTime()=null, toString()=Person [avgScore=4.0, courseName=null, num=0, createTime=null], getClass()=class cn.eaglezsx.test.Student, hashCode()=5890565]]
可以看到pL总对象的值复制到了sL中了。
阅读全文
0 0
- Java对象间属性值的复制-Spring的BeanUtil
- Java -- 利用反射实现对象之间相同属性复制BeanUtil
- javabean属性复制BeanUtil
- 工具类-复制对象BeanUtil
- 使用BeanUtil封装带日期的对象
- 两对象间的属性复制
- Java中复制两个不同类的对象的属性
- BeanUtil工具包的使用
- beanutil常用的方法
- JAVA对象属性复制
- java对象属性复制
- JAVA对象属性复制
- JAVA对象属性复制
- java对象属性复制
- java对象的复制
- java对象的复制
- JAVA的对象复制
- java对象的复制
- 论图片上传的实质
- php发送get和post的方法
- ls -l 运行结果的各个字段的意义
- 用VSCode写python的正确姿势
- 丢失的三个元素、网格走法
- Java对象间属性值的复制-Spring的BeanUtil
- 【SoapUI】1、API白盒测试的利器SoapUI详细教程
- C语言day3(字符串,字符数组,一级指针的典型用法)
- Java中父类与子类的加载顺序详解
- oracle-存储过程-日期加1循环
- Class.forName的作用?为什么要用?
- SQL 本地连接IP地址修改
- hdu 2159 二维费用背包
- C++ 类的大小 struct/class内存对齐问题