zoukankan      html  css  js  c++  java
  • 对象之间的转换(mapstruct)

    对象之间的转换

    1、在maven中引入jar包

         <!--对象转换-->
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct</artifactId>
                <version>1.1.0.Final</version>
            </dependency>
    
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>1.1.0.Final</version>
                <scope>provided</scope>
            </dependency>    

    2、创建一个接口专门实现对象进行转换

    @Mapper
    public interface IContractBean {
        IContractBean INSTANCE = Mappers.getMapper(IContractBean.class);
    
        Contract contract(SaveContractDTO saveContactDTO);
    
        ContractGood contractGood(GoodDTO goodDTO);
    
        List<ContractGood> contractGood(List<GoodDTO> goodDTOList);
    
      @Mappings({
                @Mapping(source = "terminationTime", target = "endTime"),
        })
        ContractAssistVO relationVO(ContractRelationAssist relationAssist);
        Page<ContractAssistVO> relationVO(Page<ContractRelationAssist> relationAssistPage);  
    }
    

      如果是List对象互相转换,那么需要先设置List里面的对象先进行转换

    ContractGood contractGood(GoodDTO goodDTO);
    
    List<ContractGood> contractGood(List<GoodDTO> goodDTOList);
    

      如果对象里面的属性不一致,需要进行转换,则使用@Mappings注解

    //将 terminationTime 转成 endTime对象
    @Mappings({
                @Mapping(source = "terminationTime", target = "endTime"),
        })
        ContractAssistVO relationVO(ContractRelationAssist relationAssist);
        Page<ContractAssistVO> relationVO(Page<ContractRelationAssist> relationAssistPage);
    

      

    3、实现类进行使用

     GoodVO goodVO = IContractBean.INSTANCE.contractGoodVO(contractGood);
            List<GoodVO> goodVOList = IContractBean.INSTANCE.contractGoodVO(goodList);
    

      

  • 相关阅读:
    assign()与create()的区别
    ES6对象扩展——部分新的方法和属性
    ES6对象扩展——扩展运算符
    rest operater剩余操作符
    深拷贝和浅拷贝
    for in和for of的简单区别
    查询ES6兼容的网站
    ES6扩展——对象的扩展(简洁表示法与属性名表达式)
    滚动条设置样式
    marquee横向无缝滚动无js
  • 原文地址:https://www.cnblogs.com/tanyucong/p/10302428.html
Copyright © 2011-2022 走看看