在pom文件中引入依赖
<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
<version>6.2.0</version>
</dependency>
测试类中用到的实体类:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
private Integer id;
private String name;
private Integer age;
private double salary;
}
EmployeeInfo :
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author: kevin_zhang
* @date: 2020/2/25 0025 11:02
* @Description:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmployeeInfo {
private Integer id;
private String phone;
private String email;
}
EmployeeVo :
import lombok.Data;
/**
* @author: kevin_zhang
* @date: 2020/2/25 0025 10:59
* @Description:
*/
@Data
public class EmployeeVo {
private Integer id;
private String name;
private Integer age;
private double salary;
private String phone;
private String email;
private String dept;
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
}
测试代码:
package com.example.es;
import com.example.bean.Employee;
import com.example.bean.EmployeeInfo;
import com.example.bean.EmployeeVo;
import org.dozer.DozerBeanMapperBuilder;
import org.junit.Test;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author: kevin_zhang
* @date: 2020/1/22 0022 22:07
* @Description: 对象复制
*/
public class TestDozer {
@Test
public void test() {
List<Employee> list = new ArrayList<>(4);
list.add(new Employee(1, "zhangsan", 23, 888.1));
list.add(new Employee(2, "lisi", 23, 8788.1));
list.add(new Employee(3, "wangwu", 23, 87888.1));
list.add(new Employee(4, "zhaoliu", 23, 8888.1));
List<EmployeeInfo> infos = new ArrayList<>(4);
infos.add(new EmployeeInfo(1, "13322221111", "1@q.com"));
infos.add(new EmployeeInfo(2, "13322222222", "2@q.com"));
infos.add(new EmployeeInfo(3, "13322223333", "3@q.com"));
infos.add(new EmployeeInfo(4, "13322223334", "3@q.com"));
List<EmployeeVo> employeeVos = new ArrayList<>();
list.forEach(employee -> {
EmployeeVo employeeVo = DozerBeanMapperBuilder.buildDefault().map(employee, EmployeeVo.class);
infos.forEach(employeeInfo-> {
if (ObjectUtils.nullSafeEquals(employee.getId(), employeeInfo.getId())) {
employeeVo.setPhone(employeeInfo.getPhone());
employeeVo.setEmail(employeeInfo.getEmail());
return;
}
});
employeeVos.add(employeeVo);
});
System.out.println(employeeVos);
}
}