惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
B
Blog RSS Feed
H
Help Net Security
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
L
LangChain Blog
Vercel News
Vercel News

博客园 - 正怒月神

windows 安装 openclaw docker-compose 启动 elk linux mysql 备份 maven 打包时优先选择本地仓库 nginx 部署2个相同的vue minio 设置IP MapStruct-plus cannot find converter from jenkins pipeline 发布 jar并运行 Easy es问题总结 Logstash docker发布 Docker 无法拉取 springmvc 多事务提交和回滚 springMvc 配置 UReport2 java 通过 microsoft graph 调用outlook(三) JPA Example 默认 join jackson.dataformat.xml 反序列化 对象中包含泛型 OR-TOOL 背包算法 解决JIRA、Confluence自动注销登录的问题 java 通过 microsoft graph 调用outlook(二)
MapperStruct 嵌套模型中 List<> 转 List<String>
正怒月神 · 2024-07-26 · via 博客园 - 正怒月神

废话不多说,上代码

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

一,实体类

Source

//Source中有一个List<A>
public class Source{
    private String id;
    private String from;
    private List<A> toRecipients;
 
}
 
//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>);