gpt4 book ai didi

java - 谓词过滤器 rxjava2 - 如何传递动态过滤器参数

转载 作者:行者123 更新时间:2023-11-30 06:25:21 27 4
gpt4 key购买 nike

我用 rxjava2 构建了一些基本过滤器,它按预期工作。我想知道如何将值/参数传递给过滤器 (return td.getTypeId() == **<value>**;) 。另外,如果有人有关于如何使用 rxjava2/过滤器构建(半)动态查询( Object.<field> == <value> )的想法/线索/示例,我们将不胜感激。

Predicate<TradeDetailed> testfilter;

Flowable<List<TradeDetailed>> td = tr.getTradesDetailedFlowable();

testfilter = new Predicate<TradeDetailed>() {
@Override
public boolean test(@NonNull TradeDetailed td) throws Exception {
return td.getTypeId() == 0;
}
};

Disposable d = td
.flatMapIterable(e -> e)
.filter(e-> testfilter.test(e))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(t -> {
System.out.println("filtered "+t.getReference()));

},
err -> {
System.out.println("error");
}
);

最佳答案

您可以为谓词创建一个单独的类:

class YourPredicate implements Predicate<TradeDetailed>(){

private final int compareAgainst;

public YourPredicate(int compareAgainst){
this.compareAgainst = compareAgainst;
}

@Override
public boolean test(@NonNull TradeDetailed td) throws Exception {
return td.getTypeId() == compareAgainst;
}

}

关于java - 谓词过滤器 rxjava2 - 如何传递动态过滤器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47302838/

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