You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Mono<List<MasterPair>>转换为Mono<List<Long>>类型

实现方法

你只需要调用Mono的map操作符,对Mono内部包裹的List<MasterPair>做同步映射转换,提取每个元素的id字段收集为新的Long列表即可,不需要额外嵌套其他响应式操作符。

示例代码

// 建议和原变量名区分开,避免变量遮蔽问题
Mono<List<Long>> idList = list.map(masterPairList ->
        masterPairList.stream()
                // 如果没有定义getId方法,可直接写 pair -> pair.id 访问字段
                .map(MasterPair::getId)
                // Java 16+ 可直接用toList(),低版本替换为.collect(Collectors.toList())
                .toList()
);

注意事项

  • 如果你的JDK版本低于16,需要把流末尾的.toList()替换为.collect(java.util.stream.Collectors.toList())。
  • 如果集合中可能存在null的MasterPair实例,可以在stream中加.filter(java.util.Objects::nonNull)提前过滤空值,避免触发空指针异常。
  • 这个场景不要用flatMap操作符,flatMap适用于映射逻辑返回另一个响应式Publisher的场景,这里同步集合转换用map性能更好、写法更简洁。

内容的提问来源于stack exchange,提问作者user1285928

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:18:25