Преобразовать объект в другой, вручную

#object #kotlin #transformation

#объект #kotlin #преобразование

Вопрос:

У меня есть следующий метод:

 fun get(browsePlayerContext: BrowsePlayerContext):  Single<List<Conference>>
  

Который возвращает один> со следующей структурой для объекта конференции:

 data class Conference(
        val label: String,
        val uid: UID?,
        val action: BrowsePlayerAction?,
        val image: String
) 
  

Но мне нужно преобразовать этот ответ в:

 Single<List<EntityBrowse>>
  

Просмотр объекта имеет ту же структуру, что я имею в виду:

 data class EntityBrowse(
        val label: String,
        val uid: UID?,
        val action: BrowsePlayerAction?,
        val image: String
) 
  

Я выполняю преобразование вручную, но мне нужен более сложный способ, потому что я собираюсь получить объекты другого типа, и мне придется выполнить то же преобразование в EntityBrowse.

Есть идеи?

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

1. Я не понимаю, что вы пытаетесь сделать — если вы конвертируете несколько объектов, вам, скорее всего, придется преобразовать его в общий формат данных, а не использовать для этого объекты.

Ответ №1:

Вы могли бы использовать функцию .map для преобразования объектов конференции в объекты EntityBrowse

 val conferences: List<Conference> = getConferences()

val entities: List<Entities> = conferences.map {conference -> 
 EntityBrowse(conference.label, conference.uid, conference.action, conference.image) 
 }
  

Ответ №2:

Вы можете использовать map функцию на Single объекте для преобразования Single<List<Conference>> в Single<List<EntityBrowse>> :

 val result: Single<List<EntityBrowse>> = get(context).map { conferences: List<Conference> ->
    // transform List<Conference> to List<EntityBrowse> using `conferences` variable

    conferences.map { EntityBrowse(it.label, it.uid, it.action, it.image) }
}