mapstruct使用,对象互转赋值

本文介绍了如何在Gradle项目中使用MapStruct库进行对象之间的映射。通过配置依赖,创建Mapper接口,并使用注解定义映射规则,MapStruct会自动生成相应的Mapper实现类,简化了对象转换的代码编写工作。
摘要由CSDN通过智能技术生成

gradle 依赖

api 'org.mapstruct:mapstruct:1.4.2.Final'
    api 'org.mapstruct:mapstruct-processor:1.4.2.Final'
    testAnnotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'

创建mapper

import com.vguang.mapper.entity.UserEntity;
import com.vguang.mapper.model.UserInsertVm;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserMapper {
    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

    /**
     * 状态
     *
     * @param so
     * @return
     */
    //source 为传入数据       target为被赋值的数据
    //灵活的字段映射,定制映射的规则
    @Mapping(source = "avatar",target = "head")
    @Mapping(source = "code",target = "test")
    UserInsertVm test(UserEntity so);
}

使用方法

 public static void main(String[] args) {
        UserEntity userEntity=new UserEntity("1","2","3","4","5","code","头像");
        UserInsertVm test = UserMapper.INSTANCE.test(userEntity);
        System.err.println(test);

    }

会自动生成一个mapperimpl

import com.vguang.mapper.entity.UserEntity;
import com.vguang.mapper.model.UserInsertVm;
import javax.annotation.Generated;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2022-03-18T10:17:10+0800",
    comments = "version: 1.4.2.Final, compiler: IncrementalProcessingEnvironment from gradle-language-java-7.4.jar, environment: Java 1.8.0_312 (Amazon.com Inc.)"
)
public class UserMapperImpl implements UserMapper {

    @Override
    public UserInsertVm test(UserEntity so) {
        if ( so == null ) {
            return null;
        }

        UserInsertVm userInsertVm = new UserInsertVm();

        userInsertVm.setHead( so.getAvatar() );
        userInsertVm.setTest( so.getCode() );
        userInsertVm.setTenantId( so.getTenantId() );
        userInsertVm.setAccount( so.getAccount() );
        userInsertVm.setIdCard( so.getIdCard() );
        userInsertVm.setCharacterData( so.getCharacterData() );
        userInsertVm.setEmail( so.getEmail() );

        return userInsertVm;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值