gpt4 book ai didi

java - RxJava 过滤器运算符

转载 作者:行者123 更新时间:2023-11-30 10:33:46 25 4
gpt4 key购买 nike

我是 rxJava 的新手。

好吧,我正在测试几个示例以将运算符集成到 rxJava 中。所以,我对此有疑问:

    Observable.just("JUAN", "LUCILA", "ARMANDO").map(new Function<String, Integer>() {
@Override
public Integer apply(String s) throws Exception {
return s.length();
}
}).all(new Predicate<Integer>() {
@Override
public boolean test(Integer integer) throws Exception {
return integer > 0;
}
}).filter(new Predicate<Boolean>() {
@Override
public boolean test(Boolean aBoolean) throws Exception {
return aBoolean;
}
}).subscribe(new Observer<Boolean>() {
@Override
public void onSubscribe(Disposable d) {

}

@Override
public void onNext(Boolean value) {
Log.d("STATUS: ", "OK");
}

@Override
public void onError(Throwable e) {

}

@Override
public void onComplete() {
Log.d("STATUS: ", "COMPLETE");
}
})

因此,AndroidStudio 在订阅(新观察者)时将我标记为错误。我的目标是根据长度将名称转换为数字,所以我希望所有条件都成立,显然它会是真的,然后从过滤器中过滤出 TRUE,然后显示一条日志消息说 OK!

我希望你能帮助我!谢谢!

最佳答案

http://reactivex.io/RxJava/2.x/javadoc/ 检查 Single

如评论 Observable.all(...) 中所述,您输入 Single 然后从 Single.filter(...) 你输入了 Maybe

所以使用你需要toObservable()然后订阅。

@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public final Maybe<T> filter(Predicate<? super T> predicate) {
ObjectHelper.requireNonNull(predicate, "predicate is null");
return RxJavaPlugins.onAssembly(new MaybeFilterSingle<T>(this, predicate));
}

`

更改为

Observable.just("JUAN", "LUCILA", "ARMANDO").map(new Function<String, Integer>() {
@Override
public Integer apply(String s) throws Exception {
return s.length();
}
}).all(new Predicate<Integer>() {
@Override
public boolean test(Integer integer) throws Exception {
return integer > 0;
}
}).filter(new Predicate<Boolean>() {
@Override
public boolean test(Boolean aBoolean) throws Exception {
return aBoolean;
}
}).toObservable().subscribe(new Observer<Boolean>() {
@Override
public void onSubscribe(Disposable d) {

}

@Override
public void onNext(Boolean value) {
Log.d("STATUS: ", "OK");
}

@Override
public void onError(Throwable e) {

}

@Override
public void onComplete() {
Log.d("STATUS: ", "COMPLETE");
}
});

关于java - RxJava 过滤器运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com