我创建了一个实体,它在循环中有方法isCorrect: Observable<Booledn>
。我需要每个正确的最后一个布尔值的交集。我通过创建Observable数组来创建它,有更干净的方法吗?
API.getData().
.doOnNext(data ->
{
List<Observable<Boolean>> correctAll = new ArrayList<>();
Observable.from(data).forEach(r -> {
Entity entity = new Entity();
entity.set(r);
correctAll.add(entity.correct());
});
Observable.combineLatest(correctAll, args -> {
for (Boolean o : (Boolean[]) args)
if (!o) return false;
return true;
})
.subscribe(button::setEnabled);
}
答案 0 :(得分:0)
这个怎么样:
API.getData()
.flatMap(
data-> Observable.from(data)
.flatMap(d -> { Entity entity = new Entity();
entity.set(r);
return entity.correct().last();}))
.all(b -> b)
.subscribe(button::setEnabled);