BeanUtils.copyProperties

  • Post author:
  • Post category:其他


BeanUtils.copyProperties

功能

把一个对象成员变量的值赋值给另一个对象成员变量的值,但是他们的属性名要一样。

BeanUtils.copyProperties是有两个包的

1、import org.springframework.beans.BeanUtils 2、org.apache.commons.beanutils.BeanUtils

不同:

1、参数位置不一样,springframework这个包下,被copy的对象在前面,apache反之

2、apache这个包下面的数据类型不一样可以copy

3、apache这个包的方法会覆盖掉原来的值

附上测试代码

Teacher.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teacher {
    private String id;
    private String name;
    private Long age;
    private String sex;   //多出来的参数
}

Student.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
    private String id;
    private String name;
    private String age;
}

Test.java

import java.lang.reflect.InvocationTargetException;
public class Test {
    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        Teacher teacher = new Teacher("1234", "老师", 30L, "男");
        Student student = new Student();
​
​
        //1、参数位置不一样springframework,被copy的对象在前面
        //2、apache这个包下面的数据类型不一样可以copy
        //org.springframework.beans.BeanUtils.copyProperties(teacher, student);//Student(id=1234, name=老师, age=null)
        //org.apache.commons.beanutils.BeanUtils.copyProperties(student,teacher);//Student(id=1234, name=老师, age=30)
​
        //System.out.println(teacher);
        //System.out.println(student);
​
​
        //3、apache这个包的方法会覆盖掉原来的值
        Teacher teacher1 = new Teacher();
        teacher1.setAge(99L);
        Student student1 = new Student("123", "学生", "19");
        //org.springframework.beans.BeanUtils.copyProperties(student1,teacher1);//Teacher(id=123, name=学生, age=99, sex=null)
        //org.apache.commons.beanutils.BeanUtils.copyProperties(teacher1, student1);//eacher(id=123, name=学生, age=19, sex=null)
​
        System.out.println(teacher1);
        System.out.println(student1);
​
​
​
    }
}



版权声明:本文为m0_55108781原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。