我想将一个不可变对象转换为另一个不可变对象。我搜索了一下,发现Dozzer和Orika主要用于对象映射。将不可变对象转换为不可变对象(不可变或生成器)
我尝试使用Dozzer,但似乎它不适用于使用生成器模式创建的对象。
Example:
//Source Object
public class EmployeeDTO{
private String id;
private String name;
private void setName(String name){this.name=name;}
private void setId(String id){this.id=id;}
public static class Builder{
public String id;
public String name;
public Builder setName(String name){this.name=name;}
public Builder setId(String id){this.id=id;}
public EmployeeDTO build(){
EmployeeDTO employeeDTO = new EmployeeDTO();
employeeDTO.setName(this.name);
employeeDTO.setId(this.id);
return employeeDTO;
}
}
}
//Target Object
public class Employee{
private String id;
private String name;
private void setName(String name){this.name=name;}
private void setId(String id){this.id=id;}
public static class Builder{
public String id;
public String name;
public Builder setName(String name){this.name=name;}
public Builder setId(String id){this.id=id;}
public Employee build(){
Employee employee = new Employee();
employee.setName(this.name);
employee.setId(this.id);
return employee;
}
}
}
我想交换这两个结构。我不知道我可以创建自定义映射器来执行此任务。如果可以用Dozzer/Orika以简单的方式进行操作,请帮助我。
的源和目标对象具有公共字段和设置者。他们如何不变呢? –
感谢Adam纠正我。我只是把它编码在这里,所以把错误的字段/方法公诸于众。纠正它。 – user3089214