Kotlin – ¿Cómo crear una function de alias de RxJava flatmap ()?

Intenté crear una function de alias para Flowable.flatmap() como sigue, pero error de compilation.

 fun <T, R> Flowable<T>.then(mapper: Function<T, Publisher<R>>): Flowable<R> { return flatMap(mapper) } 

El error es: Un tipo de argumento esperado para la interfaz Function<out R> definida en kotlin

¿Tienes alguna idea? ¡Gracias!

El flatMap toma una function java.util.function.Function , el verdadero error es que no importó la function java.util.function.Function en su file Kotlin, pero no sugiero que use las funciones java-8 porque puede Aproveche las conversiones de SAM para usar la lambda directamente desde el código de Kotlin que definió con la interfaz funcional java-8 como tipo de parámetro.

Debe replace la Function con la Function1 , ya que la interfaz de Function es solo una interfaz de marcador Kotlin. por ejemplo:

 // v--- use the `Function1<T,R>` here fun <T, R> Flowable<T>.then(mapper: Function1<T, Publisher<R>>): Flowable<R> { return flatMap(mapper) } 

O utilice el tipo de function de Kotlin como se indica a continuación, por ejemplo:

 // v--- use the Kotlin function type here fun <T, R> Flowable<T>.then(mapper: (T) -> Publisher<R>): Flowable<R> { return flatMap(mapper) } 
  • Lista mutable de Obersable <Object> espere hasta que todos terminen y combínelos en una list <Object>
  • Obtener files adjuntos de publicaciones de Facebook devolver NullPointerException
  • ¿Pasar lambdas a Observable.subscribe en kotlin dará como resultado pérdidas de memory?
  • Cómo probar el observador?
  • Cómo consultar Realm en el background Subprocess usando RxJava2
  • Cómo get el último valor emitido de observable
  • ¿Cómo podemos implementar Observable.flatMapCompletable?
  • ¿Alguna diferencia entre "Subject.asObservable ()" y el tema en sí "Subject"?
  • Aplicando transformación a cada elemento en Single <List <T >>
  • RxJava zipCon error IDE en Kotlin con Android Studio 3.0
  • Kotlin: Cómo convertir la testing que usa Thread.sleep a RxJava TestScheduler