【发布时间】:2018-03-12 11:34:55
【问题描述】:
getData() 返回一个 Single<ArrayList1> 里面有很多对象,也就是ArrayListX。我只想接收那些不为空的cars(ArrayList)。当然,results.filter { cars -> cars.size > 0 } 不起作用,因为它返回的列表不是布尔值。如何以正确的方式实现这一目标?附:还在学习rxjava,哈哈
val disposable = repository.getData()
.observeOn(AndroidSchedulers.mainThread())
.filter { results ->
results.filter { cars -> cars.size > 0 }
}
.subscribe({ searchResults ->
...
}, { _ ->
...
})
compositeDisposable.add(disposable)
【问题讨论】:
-
在 RxJava 中使用
map而不是filter。 -
正如@akarnokd 所说,您可能想要:
.map { results -> results.filter { cars -> cars.size > 0 } } -
@akarnokd 我编辑了帖子。我返回
Single<Arraylist>。我认为我不需要map。