RxJava 过滤器运算符
RxJava filter operator
我是 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 在订阅(新观察者)时将我标记为错误。
我的 objective 是按长度将名称转换为数字,所以我希望做一个条件,显然它会是真的,晚了,从过滤器中过滤出 TRUE,然后显示一条日志消息说好的!
希望您能帮帮我!
谢谢!
在 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");
}
});
我是 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 在订阅(新观察者)时将我标记为错误。 我的 objective 是按长度将名称转换为数字,所以我希望做一个条件,显然它会是真的,晚了,从过滤器中过滤出 TRUE,然后显示一条日志消息说好的!
希望您能帮帮我! 谢谢!
在 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");
}
});