自定义映射

当源字段和目标字段名称不同时,使用者需要通过设置@Mapping注解的field属性指定对应的源字段名称。支持使用"."获取嵌套对象中的属性,"this"获取完整的源对象。

class Foo {
    String name = "foo";
    Bar bar;
}
class Bar {
    String name = "bar";
}
class FooDto {
    @Mapping(field="name")
    String fooName;
    @Mapping(field="bar.name")
    String barName;
    @Mapping(field="this")
    String bar;
}

FooDto fooDto = BeanUtils.copyProperties(foo, FooDto.class);

System.out.println(fooDto.getFooName()); // "foo"
System.out.println(fooDto.getBarName()); // "bar"
System.out.println(fooDto.getBar()); // "Foo{name='foo', bar=Bar{name='bar'}}"

Last updated