Kotlin如何从复杂嵌套数据类中提取字段构造目标数据类实例
Kotlin 嵌套数据类转换实现方案
核心实现代码
你需要使用flatMap展开外层offers集合,再通过map遍历每个Offer下的offerDescription集合完成属性映射:
data class OfferSystem( val id: String, val offers: List<Offer> ){ fun toMyContent(): MyContent { return MyContent( // 其余MyContent的属性按你实际需求补充即可 contents = offers.flatMap { offer -> // 遍历当前Offer下的所有OfferDescription,生成对应ContentItem offer.offerDescription.map { desc -> ContentItem( title = desc.title, language = offer.language ) } } ) } }
逻辑说明
flatMap的作用是把两层嵌套的集合(List<Offer>里嵌套List<OfferDescription>)展平为单层的List<ContentItem>,完全匹配MyContent对contents字段的类型要求- 遍历每个
Offer时可以直接取到当前Offer的language属性,和子元素OfferDescription的title属性一一对应赋值给ContentItem即可
内容的提问来源于stack exchange,提问作者user572490
相关产品推荐
相关产品推荐

