Rx java 以特定类别的第n个前事件和其他所有事件为例
说我有Rx java 以特定类别的第n个前事件和其他所有事件为例,rx-java,rx-java2,Rx Java,Rx Java2,说我有 public abstract class Event {} public final class A extends Event {} public final class B extends Event {} public final class C extends Event {} 现在,有了一个可观察的,,我如何过滤它,以便只有n,A的第次发射,以及B和C的所有发射都传递到流中 也许是这样的 myObservable.publish(shared -> Observ
public abstract class Event {}
public final class A extends Event {}
public final class B extends Event {}
public final class C extends Event {}
现在,有了一个可观察的,,我如何过滤它,以便只有n
,A
的第次发射,以及B
和C
的所有发射都传递到流中
也许是这样的
myObservable.publish(shared ->
Observable.merge(
shared.ofType(A.class).take(n),
shared.notOfType(A.class) // this does not exist
)
)
有没有解决这个问题的好方法?只需使用instanceof并反转逻辑即可
@Test
void name() {
Observable<? extends Event> just = Observable.just(
new A(),
new B(),
new A(),
new B(),
new C(),
new A(),
new C()
);
int n = 2;
Observable<? extends Event> publish = just.publish(shared ->
Observable.merge(
shared.ofType(A.class).take(n),
shared.filter(o -> !(o instanceof A))
)
);
publish.test()
.assertValueCount(6);
}
@测试
无效名称(){
可观察