Как закрепить несколько наблюдаемых в языке Kotlin с помощью RxAndroid

Все! У меня есть некоторые проблемы. Я начинаю работать в RxJava / RxKotlin / RxAndroid и не понимаю некоторых функций. Например:

import rus.pifpaf.client.data.catalog.models.Category import rus.pifpaf.client.data.main.MainRepository import rus.pifpaf.client.data.main.models.FrontDataModel import rus.pifpaf.client.data.product.models.Product import rx.Observable import rx.Single import rx.lang.kotlin.observable import java.util.* class MainInteractor { private var repository: MainRepository = MainRepository() fun getFrontData() { val cats = getCategories() val day = getDayProduct() val top = getTopProducts() return Observable.zip(cats, day, top, MainInteractor::convert) } private fun getTopProducts(): Observable<List<Product>> { return repository.getTop() .toObservable() .onErrorReturn{throwable -> ArrayList() } } private fun getDayProduct(): Observable<Product> { return repository.getSingleProduct() .toObservable() .onErrorReturn{throwable -> Product()} } private fun getCategories(): Observable<List<Category>> { return repository.getCategories() .toObservable() .onErrorReturn{throwable -> ArrayList() } } private fun convert(cats: List<Category>, product: Product, top: List<Product>): FrontDataModel { } } 

Тогда я использую MainInteractor :: convert Android studio скажите мне следующее

введите описание изображения здесь

Я пробовал много вариантов и пытался понять, чего он хочет, но не успел. Помогите мне, пожалуйста … С наилучшими пожеланиями.

Просто замените функцию ссылкой на лямбда:

 return Observable.zip(cats, day, top, { c, d, t -> convert(c, d, t) }) 

И не забудьте явно объявить тип возврата функции:

 fun getFrontData(): Observable<FrontDataModel> { ...