簡體   English   中英

使用rxjava訂閱時如何返回布爾值

[英]How to return boolean value when subscribe with rxjava

我有一個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返回值。 請幫我。

一種駭人聽聞的方法是:

  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];
  }

嘗試阻止

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM