手动将对象转换为另一个对象

时间:2019-03-04 19:46:39

标签: object kotlin transformation

我有下一个方法:

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

哪个将返回Single>以及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执行相同的转换。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用.map函数将Conference对象转换为EntityBrowse对象

val conferences: List<Conference> = getConferences()

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

答案 1 :(得分:0)

您可以在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) }
}