Несоответствие типа в Consume<...> в .subscribe (Retrofit, RxJava)

я делаю погодное приложение. Нашел кусочек кода, который был мне необходим, но он был на Java. Я переписал его на Kotlin, но столкнулся с проблемой. (на скриншоте). Создавал переменую я следующим образом:

private lateinit var mService: OpenWeatherMap

после реализовывал интерфейс

private fun getWeatherInformation() {
        mService.getWeatherByLatLng(
            Common.current_location?.latitude.toString(),
            Common.current_location?.longitude.toString(),
            Common.API,
            "metric"
        )
            ?.subscribeOn(Schedulers.io())
            ?.observeOn(AndroidSchedulers.mainThread())
            ?.subscribe(object : Consumer<WeatherResult> {
                @SuppressLint("SetTextI18n")
                override fun accept(weatherResult: WeatherResult) {

                    binding.apply {
                        //Load info
                        txtCityName.text = weatherResult.name
                        txtDescription.text = "Weather in ${weatherResult.name}"
                        txtTemperature.text = "${weatherResult.main?.temp.toString()} °C"
                        txtDateTime.text = Common.convertUnixToDate(weatherResult.dt)
                        txtGeoCoord.text = "[ ${weatherResult.coord} ]"

                        //Display panel
                        weatherPanel.visibility = View.VISIBLE
                        loading.visibility = View.GONE
                    }
                }

            }, object : Consumer<Throwable> {
                override fun accept(t: Throwable) {
                    Toast.makeText(activity, ""+t.message, Toast.LENGTH_SHORT).show()
                }
            })
    }

Сам интерфейс

interface OpenWeatherMap {
    @GET("weather")
    fun getWeatherByLatLng(
        @Query("lat") lat: String?,
        @Query("lon") lng: String?,
        @Query("appid") appId: String?,
        @Query("units") unit: String?
    ): Observable<WeatherResult?>?

и класс WeatherResult:

class WeatherResult {
    var coord: Coord? = null
    var weather: List<Weather>? = null
    private val base: String? = null
    var main: Main? = null
    var visibility = 0
    var wind: Wind? = null
    var clouds: Clouds? = null
    var dt: Long = 0
    var sys: Sys? = null
    var timezone = 0
    var id = 0
    var name: String? = null
    var cod = 0
}

Получаю следующую ошибку (см. скриншот). С чем связана проблема? Опытным путем нашел, что при создании переменной, вроде как, необходимо указать тип данных в <>, однако при попытке вставить туда какой-либо тип на ошибки ругаться перестает, но говорит, что сюда вставлять тип не следует

private lateinit var mService: OpenWeatherMap<>

Буду очень рад если подскажете как исправить

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

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

введите сюда описание изображения Красным - unresolved references


Ответы (1 шт):

Автор решения: ЮрийСПб

Чтобы не мучиться самому с дженериками - поручите это котлину, написав так:

.subscribe({result -> /*тут код обработки успеха*/ }, {error -> /*тут код обработки ошибки*/ })
→ Ссылка