我有一个arrayList。如果我的数组isNumber中至少有一项,则需要返回true。 这是我的代码:
private boolean hasNumber(ArrayList<Item> items) {
return Observable.fromIterable(items)
.filter(Item::isNumber)
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(items-> items.size() > 0)
.subscribe(result -> "");
}
但是我不能从该方法返回true / false。我不明白如何使用rxJava返回值。请帮助我。
答案 0 :(得分:1)
一种骇人听闻的方法是:
private boolean hasNumber(List<Item> items) {
Boolean[] res = new Boolean[1];
res[0] = false;
Observable.from(items).filter(this::isNumber).toList().subscribe(list -> {
if(list.size() > 0) {
res[0] = true;
}
});
return res[0];
}
答案 1 :(得分:0)
private boolean hasNumber(ArrayList<Item> items) {
return Observable.fromIterable(items)
.filter(Item::isNumber)
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(items-> items.size() > 0)
.blockingFirst();
}