2017-02-04 6 views
2

rxJavaが新しくなっています。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は私の購読上のエラー(新しいオブザーバー)マーク。 私の目的は、長さで名前に名前を変換するので、私は条件を作ることを望みますが、明らかにそれは真であり、遅く、フィルタからTRUEをフィルターにかけ、次にOKを示すログメッセージを表示します!

私があなたを助けてくれることを願っています! ありがとう! http://reactivex.io/RxJava/2.x/javadoc/

ように

答えて

1

チェックSingleはあなたがタイプMaybeを持ってSingle.filter(...)から、その後のタイプSingleを持ってObservable.all(...)コメントで述べています。

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"); 
      } 
     }); 
+1

への変更は、私が' 'Observable.all(...)でSingle''に、単一の ''でMaybe'の種類の変更を考えています。フィルタ(...) '。 'Observable.filter(...)'は 'Observable'を返します。 – Kiskae

+0

@Kiskaeはいそのソースによる – Raghunandan

+0

よ、それは動作します。ありがとう@Raghunandan – Juandqt