Kotlin – 如何创建RxJava flatmap()的别名函数?
我试图创建一个别名函数Flowable.flatmap()
如下,但编译错误。
fun Flowable.then(mapper: Function<T, Publisher>): Flowable { return flatMap(mapper) }
错误是: 在kotlin中定义的接口Function
有一个types参数
有什么想法? 谢谢!
flatMap
需要一个java.util.function.Function
,实际的错误是你没有在你的Kotlin文件中导入java.util.function.Function
,但是我不建议你使用java-8的function,因为你可以没有利用SAM转换来直接使用java-8函数接口定义的Kotlin代码中的lambda作为参数types。
您应该将Function
替换为Function1
,因为Function
接口只是一个Kotlin 标记接口 。 例如:
// v--- use the `Function1` here fun Flowable.then(mapper: Function1>): Flowable { return flatMap(mapper) }
或者使用下面的Kotlin 函数types ,例如:
// v--- use the Kotlin function type here fun Flowable.then(mapper: (T) -> Publisher): Flowable { return flatMap(mapper) }
- 在子构造函数中初始化抽象类字段
- Kotlin Android Button.onClickListener导致NoSuchMethodError
- 如何在Kotlin中使用foldRight递归实现dropWhile
- Kotlin:Dagger2 @Inject context var始终为空
- 这个groovy语法如何转换成kotlin?
- 当我添加将RealmObject扩展到我的项目的ChatInformation kotlin类时,无法建立项目,错误在哪里?
- 在Android Java / Kotlin中,是否实现了一个接口直接访问嵌套类的本地变量
- Kotlin:泛化的泛型似乎不适用于hash / equals比较
- 来自java的kotlin函数默认参数