我有一个来自rest API的JSON字符串,并将其绑定(bind)到List<CategoryDO>对象中。我将所有类别/子类别数据放入此列表对象List<CategoryDO>中,但是我不知道如何将这些数据中的子类别分离为Array<List<CategoryDO>>格式。

如何将子类别列表添加到Array<List<CategoryDO>>对象中?如何在Kotlin中声明和初始化Array<List<CategoryDO>>

所有类别均应采用List<CategoryDO>格式,所有子类别均应采用Array<List<CategoryDO>>格式。

例如:

List<CategoryDO of Cat-1, CategoryDO of cat-2, ... etc>

Array<List<CategoryDO of SubCat-1 of Cat-1, CategoryDO of SubCat-2 of Cat-1>>, List<CategoryDO of SubCat-12 of Cat-2, CategoryDO of SubCat-22 of Cat-2>>, ...etc>>

CategoryDO数据类:
data class CategoryDO(  @SerializedName("Id")
                    @Expose
                    var id: Long? = null,
                    @SerializedName("Name")
                    @Expose
                    var name: String? = null,
                    @SerializedName("SubCategories")
                    @Expose
                    var subCategories: List<CategoryDO>? = null)

实际上,我需要将此单独的类别/子类别内容传递给CategoryAdapter类。
CategoryAdapter类示例:
class CategoryAdapter : BaseExpandableListAdapter {
private var groupItem: List<CategoryDO>
private var contentItem: Array<List<CategoryDO>>
private var context: Context
private var imageOnClickListener: View.OnClickListener

constructor(context: Context, groupItem: List<CategoryDO>, contentItem: Array<List<CategoryDO>>, imageOnClickListener: View.OnClickListener) {
        this.groupItem = groupItem
        this.contentItem = contentItem
        this.context = context
        this.imageOnClickListener = imageOnClickListener
    }
  .
  .
  .
}

最佳答案

如果您需要将List<CategoryDO>转换为Array<List<CategoryDO>>,其中内部列表是每个CategoryDO的子类别列表,则可以映射到原始列表并将结果转换为数组...

// Given
val categories: List<CategoryDO> = TODO()

val allSubCats: Array<List<CategoryDO>> =
    categories.map { it. subCategories }.toTypedArray()

10-04 20:09