我想連鎖兩個RxJava Single
實例來創建Observable
,它們發出兩個結果。另外,我需要第一個Single
的結果來創建第二個。如何幫助Java解析RxJava組合方法中的類型?
這是我曾嘗試:
public static <A extends C, B extends C, C> Observable<C> chain(final Single<A> a, final Function<A, Single<B>> f) {
return Observable.concat(
a.toObservable(),
a.flatMap(f::apply).toObservable());
}
用法可能是這樣的:
final Observable<Event> task = MoreObservables.chain(
writeFile("Hello, world", "hello.txt"),
writeFileEvent -> processFile(writeFileEvent.path));
然而,Java抱怨說,它無法解析類型:
Error:(54, 61) java: incompatible types: cannot infer type-variable(s) A,B,C
(argument mismatch; bad return type in lambda expression
io.reactivex.Single<ProcessFileEvent> cannot be converted to io.reactivex.Single<Event>)
中當然,ProcessFileEvent
執行Event
。
我該如何編寫我的函數,以便Java可以計算出類型?還是有更簡單的方法來實現這一點?
這完美地工作,而鏈接的文章是非常有幫助了。 – sdgfsdh