MutableList Добавить весь массив kotlin, добавленный как объект

#android #kotlin #generics #any #mutablelist

#Android #kotlin #общие #Любой #список изменяемых файлов

Вопрос:

Ниже приведен мой код

 var items : MutableList<Any> = arrayListOf()
        items.add(TeacherDetails(it?.photo,it?.firstName,it?.lastName,it?.level))
        items.add(TeacherBio(it?.bio))
        items.add(TitleAccreditations(getString(R.string.acreditations)))
        items.add(SessionsTitle(it?.firstName   getString(R.string.apostrophe)   getString(
                        R.string.sessions)))
        items.addAll(listOf(it?.classes ?: arrayListOf()))
        items.add(IntroVideo(it?.introVideo))
        items.addAll(it?.teachingAccreditations?.split("n")?.map { Accreditation(
            it
        ) }?: emptyList())
 

Проблема в следующей строке, в которой добавляется весь список как объект, а не отдельный элемент.

 items.addAll(listOf(it?.classes ?: arrayListOf()))
 

Ниже приведена моя модель

 data class Teacher(

@field:SerializedName("firstName")
val firstName: String? = null,

@field:SerializedName("lastName")
val lastName: String? = null,

@field:SerializedName("teacherId")
val teacherId: String? = null,

@field:SerializedName("introVideo")
val introVideo: String? = null,

@field:SerializedName("level")
val level: String? = null,

@field:SerializedName("teachingAccreditations")
val teachingAccreditations: String? = null,

@field:SerializedName("classes")
val classes: List<ClassesItem?>? = null,

@field:SerializedName("photo")
val photo: String? = null,

@field:SerializedName("bio")
val bio: String? = null
)
 

Комментарии:

1. можете ли вы добавить свой it код модели?

2. добавлен код модели

Ответ №1:

Я думаю, потому что ваш type of list есть Any , он рассмотрит возможность добавления list экземпляра также как an object , поэтому вместо этого listOf() он просто добавляет напрямую

 items.addAll(it?.classes?.filterNotNull()?: arrayListOf())