一、目的:调研BeanUtils.copyProperties(source, target)、BeanUtil.copy(Object source, Object target)、Convert.convert(Class<T> target, Object source)拷贝方法的使用效果。
二、结论:
1、BeanUtils.copyProperties(Object source, Object target)方法,及BeanUtil.copy(Object source, Object target)方法,在字段名及字段类型都相同时将source字段值复制给target。两者效果相同,复制后修改任意一方,不会修改另一方。
2、Convert.convert(Class<T> target, Object source)方法,只要字段名相同就将source字段值复制给target。当source和target的对象相同时,若使用Convert.convert(Class<T> target, Object source)方法复制后,修改任意一方,另一方会被修改。
三、以下代码有助于理解~
1、新建实体类Test1
package com.wh.entity;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class Test1 {
private Long id;
private String name;
private String post;
private int workYear;
private BigDecimal salary;
private String remark;
}
2、实体类Test2(Test2中workYear与Test1数据类型不同,Test2比Test1多了age,你觉得这两个字段的复制效果会怎样呢?)
package com.roshi.erp.entity;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class Test2 {
private Long id;
private String name;
private String post;
private Double workYear;
private BigDecimal salary;
private String remark;
private int age;
}
3、举个栗子
public static void main(String[] args