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
相关产品推荐
相关产品推荐

