Я работаю с методом, который возвращает различные типы объектов, я использовал возвращаемый тип Any, но есть ли лучший вариант для достижения этой цели?
Это мой метод:
override fun getNavItemById(dCSServiceContext: DCSServiceContext): Observable<Any> {
return scribeProvider.getNavItemById(dCSServiceContext).map { navItem ->
scribePresenter.presentNativeItem(navItem)
}.toObservable()
}
После того, как я выполняю приведение возвращенного объекта с помощью оператора when, я делаю что-то вроде этого:
when (item) {
is NavItem -> {
if (parentItem.hasChildren) {
parentItem.items?.add(item)
recursiveItem = item
}
}
is Image -> {
if (parentItem.hasImages) {
parentItem.image = Image(item.image, item.selectedImage)
recursiveItem = parentItem
}
}
}
И другое мое сомнение в том, как я могу использовать этот метод и извлекать этот тип объекта другим способом.
Спасибо !!!