【发布时间】:2020-05-27 17:19:22
【问题描述】:
我有一个方法,它需要一个对象列表(小部件)——它包含一些属性(标题)和嵌套列表(组件)。我想将列表展平为一个列表,并使用以下代码:
@SuppressLint("CheckResult")
fun flatten(fatList: Single<List<Widget>>) {
val flatList: MutableList<IUiData> = mutableListOf()
fatList.map {
Observable.fromIterable(it).map { widget ->
if (widget.header.isNotEmpty()) {
flatList.add(ProductHeaderUi(widget.header))
}
widget.componentList.map { component ->
when (component.type) {
TILE_TEXT -> {
flatList.add(HeaderUi(component))
}
TILE_IMAGE -> {
flatList.add(ImageTileUi(component))
}
TILE_FOOTER -> {
flatList.add(FooterUi(component))
}
UNKNOWN -> {
//Do Nothing
}
}
}
}
}
}
我打算从这个方法返回一个 List 的 Single: Single<MutableList<IUiData>>,这个目的现在可以达到,但我正在寻找一种更清洁的方法
【问题讨论】:
-
将Single 转换为MutableList 并没有真正意义,因为您必须等待数据产生。你可以把它变成
Single<MutableList<IUiData>>。这就是你想要的吗? -
是的,我的错,应该是
Single<MutableList<IUiData>> -
我已经更新了问题,谢谢指出!