【发布时间】:2020-02-04 20:28:02
【问题描述】:
下午好。 所以我得到了一个列表,里面有一个这样的列表:
{
"category" : [
{
"name": "Bathroom",
"products": [
{
"name": "Sink01"
},
{
"name": "Shower01"
}
]
},{
"name": "Kitchen",
"products": [
{
"name": "Table"
},
{
"name": "Stove"
}
]
}
]
}
因此,例如,如果用户选择“浴室”类别,我想使用 rxjava 过滤“浴室”类别中的产品列表,如果他们选择“厨房”类别,我想从中获取产品列表“厨房”类别。
这是我迄今为止尝试过的:
fun getProducts(category: Category): Single<MutableList<Product>> {
return service.getProductsByCategories().filter{ response ->
response.categoriesList.forEach {
if (it.name == category.name) {
category.products
}
}
}
}
现在我收到“类型不匹配。要求:Single<MutableList<Product>>,找到:Maybe<MyResponse!>!”
为什么会这样? 过滤的正确方法是什么?
提前致谢。
问候
【问题讨论】:
-
您能否澄清
service.getProductsByCategories()返回的类型?此外,无论那种类型是什么,我怀疑它的方法filter需要一个返回“事物”列表而不是布尔值(true或false)的 lambda。 -
它返回一个Single
- >,每个类别里面都有一个产品列表。