Как сделать Mapper и вернуть Single <MyObject>? - PullRequest
0 голосов
/ 29 мая 2019

Я использовал mapper для другого объекта, и это List, и я мог бы сделать что-то вроде:

return myResponse.getData().map(myMapper(it))

И это работает, но теперь я не возвращаю List<Object> Я возвращаю Object, но я хочу сопоставить объект другому объекту как:

data class PersonResponse(val id: Int, val name: String, val surname: String, val age: Int, val street: String....) 

Так что теперь я хочу PersonViewModel, который содержит только name и surname, как я могу это сделать? Мой метод:

fun execute() : Single<PersonViewModel> { return myResponse.getData() //this returns a Single<PersonResponse>}

Как мне отобразить это? Или это не обязательно?

Спасибо.

1 Ответ

1 голос
/ 29 мая 2019

просто используйте карту:

fun execute() : Single<PersonViewModel> { 
    return myResponse.getData()
        .map { PersonViewModel(it.name, it.surname) }
}

или если у вас есть преобразователь из PersonResponse в PersonViewModel:

fun execute() : Single<PersonViewModel> { 
    return myResponse.getData()
        .map { personMapper.map(it) }
}
...