Java genérico para Kotlin genérico. Retorno genérico del método

Intentando convertir un proyecto de Java a Kotlin.

Me quedé atrapado en un método que devuelve ObservableTransformer de RXJava 2

Java

protected <T> ObservableTransformer<T, T> onNetworkError() { return observable -> observable .doOnError(throwable -> networkError.setValue(throwable)); } 

Convertir esto usando intellij ide arroja un error.

Java a Kotlin usando ide

 protected fun <T> onNetworkError(): ObservableTransformer<T, T> { return { observable -> observable .doOnError({ throwable -> networkError.setValue(throwable) }) } } 

¿Alguien tiene una idea para convertir el código de Java anterior a Kotlin?

Gracias por adelantado

Su código está devolviendo una function que acepta tipo observable de desconocido y devuelve un object Observable .

La expresión lambda que necesita debe ser así:

 protected fun <T> onNetworkError(): ObservableTransformer<T, T> { return ObservableTransformer { observable -> observable .doOnError({ throwable -> networkError.setValue(throwable) }) } } 

Además de la respuesta de BakaWaii desde arriba, puedes simplificar aún más el código de la siguiente manera:

 protected fun <T> onNetworkError(): ObservableTransformer<T, T> { return ObservableTransformer { it.doOnError { networkError.setValue(it) } } } 

Sin embargo, tener dos diferentes puede ser confuso, por lo que es posible que desee dejar uno de ellos como un parámetro explícito.

  • Cómo controlar el flujo sin .flatMap, que rompe una stream reactiva que impide que operadores como distinctUntilChanged trabajen en toda la secuencia
  • Pruebas unitarias Rxjava observables que tienen un retraso
  • ¿Cómo iterar sobre Single <List> y asignar a otra list?
  • Error "No se puede combinar Dex" al usar Room + Kotlin
  • RxJava manejando múltiples devoluciones de llamada dentro de un observable
  • Utilice la unidad de Kotlin (o cualquier otro object) escriba en el layout de Android
  • ¿Por qué no puedo usar la interfaz como el tipo genérico en este transformador Rx?
  • Cómo escribir la testing adecuada para el repository de interfaz reactiva que devuelve Observable solo cuando hay algún evento, cómo simular el desencadenamiento de ese evento
  • RxJava2: onComplete no llamado con flatMapIterable
  • Observables opcionales en combinar
  • Cómo crear el controller de respuesta genérica para el error y validar la respuesta utilizando retrofit, rxjava y dagger