Función de extensión de llamada dentro de la class Java como cualquier operador de RX

Creé una function de extensión,

fun <T> Observable<T>.subscribeWithErrorHandling(onNext: (T) -> Unit ,onError: ((throwable: Throwable) -> Unit)? = null): Subscription { //doing stuff } 

en la class de kotlin, no podré usarlo de esa manera

observable.subscribeWithErrorHandling(...)

Ahora, quiero usar esta function en mi class Java también. Ya veo que puedes llamarlo estáticamente como:

MyExtensionFile.subscribeWithErrorHandling

Pero en mi caso, necesitas algo más ya que está en medio de un flujo de RX. Y esa es la parte con la que estoy atrapado. ¿Esto es posible? o no hay manera de hacer algo como eso desde el código java?

Respuesta simple. No

Explicación: creo que eso no es posible, ya que eso significa que estás ampliando la class Observable , que es abstracta. Las extensiones de Kotlin añaden la misma funcionalidad al moverse fuera del tree de inheritance y en Java, en realidad estás atascado con la inheritance.

Entonces, la única opción que queda sería extender la class base Observable y crear su propia implementación de la misma que creo que sería indeseable en su caso. Una solución simple sería crear un nuevo método solo para Java que pueda tomar un observable y hacer la lógica requerida. O cree una class personalizada con la instancia de Observable como su miembro de instancia y luego escriba los methods necesarios dentro de ella (la forma estándar de OOPS). Este código podría luego ser utilizado tanto desde Kotlin como desde Java.

EDITAR: Creo que ya lo sabes, pero aún así te señalará esta pregunta .

La extensión funciona una de las ventajas de kotlin sobre Java. La encoding en kotlin le brinda esas ventajas, pero desafortunadamente eso no significa que pueda tener las características del lenguaje kotlin en el código Java.

Solución: transfiera el module donde desea usar funciones de extensión a kotlin.

  • JavaRX: cómo devolver el valor en caching inmediatamente y en paralelo hacer una request de networking
  • Kotlin: cómo henetworkingar del suscriptor de RxJava
  • No se pudo deducir Kotlin y RxJava
  • 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
  • Manejo de tipo anulable en RxJava con Kotlin
  • Combinando los resultados de múltiples observables
  • RxJava- Gire Observable en Iterator, Stream o Sequence
  • Extraño comportamiento de componer y ObservableTransformer en RxJava cuando el genérico pasado se extiende
  • Implementando la búsqueda que empuja los resultados a la list tan pronto como estén disponibles usando rxJava
  • ¿Pasar lambdas a Observable.subscribe en kotlin dará como resultado pérdidas de memory?
  • RxKotlin: tratando de agregar errores personalizados capturando