MapperStruct 嵌套模型中 List<> 转 List<String>

废话不多说,上代码

宗旨:将List<A> 映射为 List<String>

一,实体类

Source

//Source中有一个List<A>
public class Source{
    private String id;
    private String from;
    private List<A> to;

}

//A对象中有个B
public class A{
    private B b;
}

//B有个address属性
public class B{
   private String address;
}

Target

public class Target {
    private String id;
    private String from;
    private List<String> to;
}

二,Mapper映射接口


import com.microsoft.graph.models.Message;
import com.microsoft.graph.models.Recipient;
import io.github.linpeilie.BaseMapper;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;

import javax.xml.transform.Source;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author: Tyler
 * @create: 2024-07-26
 */

@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MyMapper {
    MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);

    @Mappings({
        @Mapping(source = "id", target = "id"),
        @Mapping(source = "from", target = "from"),
        @Mapping(source = "toRecipients", target = "to"),
    })
        //实体转换
    Target convert(Source entity);

    //List转换
    List<MyMapper> convertList(List<Source> entitys);

    //自定义 List<A> 映射 List<String>
    default List<String> convertToString(List<A> entitys) {
        List<String> list=entitys.stream().map(x->x.getB().getAddress()).collect(Collectors.toList());;
        return list;
    }

}

三,调用

List<Target> list = MyMapper.INSTANCE.convertList(List<Source>);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值