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

RxJava如何过滤GoogleBook嵌套对象中smallThumbnail非空的条目

问题原因

你当前的实现存在两个核心错误:

  • 遍历items后的结果没有被保存,最终直接返回了未修改的原GoogleBook对象,逻辑完全不生效
  • 调用的smallThumbnail?.filter是String类型的字符过滤方法,不是集合元素过滤,和你的需求不符

正确实现

直接替换你出错的map代码段即可:

.map { t ->
    // 过滤符合smallThumbnail不为空条件的条目
    val validItems = t.items.filter {
        it.volumeInfo.imageLinks?.smallThumbnail != null
    }
    // 利用data class的copy方法生成新的GoogleBook实例,替换为过滤后的items
    t.copy(items = ArrayList(validItems))
}

补充说明

Kotlin的data class默认是不可变的,你必须通过copy方法生成修改了属性的新对象返回,才能让上游的变更生效,不能直接修改原对象的属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:24:02