Ich versuche, eine RxJava-Bibliothek zu portieren und Erweiterungsfunktionen in Kotlin zu nutzen."Super" Generika in Kotlin Funktionstypen auszudrücken?
fun <T,R: MutableCollection<T>> Observable<T>.collectWhile(factory: (() -> R), condition: (R,T) -> Boolean) =
compose(Transformers.collectWhile(factory,condition))
Die Transformers.collectWhile()
ist in Java geschrieben und hat diese Unterschrift:
public static <T, R extends Collection<T>> Transformer<T, R> collectWhile(final Func0<R> factory,
final Action2<? super R, ? super T> collect)
Allerdings bin ich mit Abbildung des collect
Argument ein Problem bekommen, und ich bin bei Generika nicht gut. Wie kann ich super
mit einem Funktionstyp ausdrücken?
UPDATE
dumme Fehler meinerseits. Ich hätte nicht spät in der Nacht auf SO schreiben dürfen.
Ich war eigentlich Targeting dieses
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)
Und das ist, was ich getan haben sollte.
fun <T,R: MutableCollection<T>> Observable<T>.collectWhile(factory: (() -> R), action: (R,T) -> Unit, condition: (R,T) -> Boolean) =
compose(Transformers.collectWhile(factory,action,condition))
fügen Sie bitte die Fehlermeldung Sie erhalten – voddan