用法

依赖引入

Maven

<dependency>
    <groupId>com.taocares.commons</groupId>
    <artifactId>commons-beans</artifactId>
</dependency>

依赖版本由dependency-bom统一管理

基本用法

将源对象拷贝到已有的目标对象:

BeanUtils.copyProperties(sourceObject, targetObject);

拷贝源对象并生成新的目标对象:

TargetObject targetObject = BeanUtils.copyProperties(sourceObject, TargetObject.class);

拷贝源对象集合并生成目标对象集合:

List<TargetObject> targetObjects = BeanUtils.copyProperties(sourceObjects, TargetObject.class);
Set<TargetObject> targetObjects = BeanUtils.copyProperties(sourceObjects, TargetObject.class);

BeanUtils提供了Page对象的拷贝方法,但是建议使用原生的Page#map方法进行数据的转换

映射配置

class Foo {
    String name;
    Date createTime;
    Bar bar;
}
class FooDto {
    String name;
    @Mapping(datePattern="yyyy-MM-dd HH:mm")
    String createTime;
    @Mapping(field="bar.name", oneway=true)
    String barName;
    @Nested(thisClass=BarDto.class, thatClass=Bar.class)
    BarDto bar;
}

说明:

  • 对于名称、类型完全相同的字段,无需任何配置

  • 支持以下简单类型的自动转换,无需指定转换器

    • Date LocalDate/LocalTime/LocalDateTime

    • String Integer/Long/Float/Double/Boolean

    • Number Integer/Long/Float/Double/Boolean

    • Object String

    • 自动拆箱/自动装箱

  • 使用"."获取嵌套对象的属性,设置oneway=true表示单向映射

  • 使用@Nested指定嵌套的对象类型,从而实现自动转换

Last updated