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 contar el time de ejecución de lo observable
  • No se puede llamar al operador desde () en Observable en Android Kotlin
  • 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
  • Cómo señalar un observable para producir más datos
  • Proguard: ¿Qué regla puedo agregar para evitar no puedo encontrar la class referenceda?
  • Convirtiendo un Observable en un Flujo con contrapresión en RxJava2
  • ¿Cómo puedo indicar explícitamente la finalización de un Flowable en RxJava?
  • rx-java2 Schedulers.io () steel invoca el método de mainThread
  • Descargar un file desde un control remoto y savelo en un dispositivo Android
  • La function de extensión no crea un nuevo object Observable
  • Enfrentando problemas con la implementación de Rx Java con la architecture de flujo en Android kotlin