推土机映射:到目的地的多个源

Vin*_*uri 4 java dozer

我是DOZER制图的新手

我们可以将属性从多个源类映射到目标吗?

例如

class A {
          int a;
          int b;
}

class B {
    String c;
}

class Destination {
    int a;
    int b;
    String c;
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用一个映射配置文件执行此操作?

Hol*_*gzn 11

你可以只映射两次.首先,使用Destination.class作为目标,然后使用第一个映射产生的Object作为目标:

    A a = new A();
    a.setA(1);
    a.setB(2);

    B b = new B();
    b.setC("3");

    Mapper mapper = DozerBeanMapperSingletonWrapper.getInstance();

    Destination destination = mapper.map(a, Destination.class);

    mapper.map(b, destination);

    System.out.println(destination);
    // Destination [a=1, b=2, c=3]
Run Code Online (Sandbox Code Playgroud)

这甚至适用于空映射配置文件.