我正在尝试移植 RxJava 库并利用 Kotlin 中的扩展功能。
fun <T,R: MutableCollection<T>> Observable<T>.collectWhile(factory: (() -> R), condition: (R,T) -> Boolean) =
compose(Transformers.collectWhile(factory,condition))
是用 Java 编写的Transformers.collectWhile()
,并具有以下签名:
public static <T, R extends Collection<T>> Transformer<T, R> collectWhile(final Func0<R> factory,
final Action2<? super R, ? super T> collect)
但是,我遇到了映射collect
参数的问题,而且我不擅长泛型。如何super
用函数类型表达?
更新
我犯了愚蠢的错误。我不应该在深夜发帖。
我实际上是针对这个
public static <T, R extends Iterable<?>> Transformer<T, R> collectWhile(final Func0<R> factory,
final Action2<? super R, ? super T> collect, final Func2<? super R, ? super T, Boolean> condition)
这是我应该做的。
fun <T,R: MutableCollection<T>> Observable<T>.collectWhile(factory: (() -> R), action: (R,T) -> Unit, condition: (R,T) -> Boolean) =
compose(Transformers.collectWhile(factory,action,condition))