#7422·RxJava

功能请求: 为 Flowable/Observable 添加展开构造

作者: scr-oath创建于 2022年5月26日更新于 2026年3月19日
标签Feature-Request4.x

public class Unfold { public static class Pair<L, R> { private final L left; private final R right; public Pair(L left, R right) { this.left = left; this.right = right; } public L getLeft() { return left; } public R getRight() { return right; } } public static <S, E> Flowable flowableUnfold(S state, Function<S, Optional<Pair<S, E>>> generator) { return Flowable.defer(() -> Flowable.fromOptional(generator.apply(state))) .flatMap(pair -> Flowable.just(pair.getRight()) .concatWith(flowableUnfold(pair.getLeft(), generator))); } public static <S, E> Flowable flowableUnfoldMaybe(S state, Function<S, ? extends MaybeSource<Pair<S, E>>> generator) { return Flowable.defer(() -> Flowable.fromMaybe(generator.apply(state))) .flatMap(pair -> Flowable.just(pair.getRight()) .concatWith(flowableUnfoldMaybe(pair.getLeft(), generator))); } } And some scala to test it

内容来源: ReactiveX/RxJava