RxJava

Schedulers.newThread

Schedulers.newThreadは、新しいスレッドで実行する。Schedulers (RxJava Javadoc 1.3.8)実行すると、 [1]:id = 1, name = main [3]:id = 1, name = main [2]:id = 11, name = RxNewThreadScheduler-1 [4]:id = 11, name = RxNewThreadScheduler-1 1 [4]:id …

Schedulers.io

Schedulers.ioは、キャッシュされたスレッドで入出力する場合に使う。Schedulers (RxJava Javadoc 1.3.8)実行すると、 [1]:id = 1, name = main [3]:id = 1, name = main [2]:id = 11, name = RxIoScheduler-2 [4]:id = 11, name = RxIoScheduler-2 1 [4]:id…

Schedulers.computation

Schedulers.computationは、キャッシュされたスレッドで実行を意味する。 (ただし、入出力の場合はioの方がいい。)Schedulers (RxJava Javadoc 1.3.8)実行すると、 [1]:id = 1, name = main [3]:id = 1, name = main [2]:id = 14, name = RxComputationSched…

Schedulers.immediate

Schedulers.immediateは、現在のスレッドで即座に実行を意味する。Schedulers (RxJava Javadoc 1.3.8)実行すると、 [1]:id = 1, name = main [3]:id = 1, name = main [2]:id = 1, name = main [4]:id = 1, name = main 1 [4]:id = 1, name = main 2 [4]:id …

Observable<T>.observeOn

Observable<T>.observeOnで、Observable<T>.subscribeに渡した通知処理スレッドのスケジューラをセットできる。Observable (RxJava Javadoc 1.3.8)発行は現在のスレッド、通知は新しいスレッド。 [1]:id = 1, name = main [3]:id = 1, name = main [2]:id = 1, nam</t></t>…

Observable<T>.subscribeOn

Observable<T>.subscribeOnで、Observable<T>.createに渡した発行処理スレッドのスケジューラをセットできる。Observable (RxJava Javadoc 1.3.8)キャッシュされたスレッド(I/O以外)で実行する場合は、Schedulers.computation()をセット。 [1]:id = 1, name = main</t></t>…

Observable<T>.create

Observable<T>.createでは、指定された動作をするオブザーバブルを作成できる。 from, just, rangeより複雑な発行動作をさせたいという場合が一般的らしいので、大抵はこれを使うらしい。 Reactive ExtensionsのObservable.Createと同じ。 (1.2.7でdeprecated。</t>…

Observable<T>.map

Observable<T>.mapで、さらなる加工を加える。Observable (RxJava Javadoc 1.3.8)偶数で絞り込んだら、さらにその値を2倍する。こうすると、 4 8 12 16 20 Completed!2倍になった。Sample/rxjava/Observable_T/map/src/Observable_T at master · bg1bgst333/Sam</t>…

Observable<T>.filter

Observable<T>.filterで、発行する値を絞り込む。Observable (RxJava Javadoc 1.3.8)C#のLINQのWhereと同じ。ラムダ式で2で割った余りが0と条件を付ける。 つまり偶数。 2 4 6 8 10 Completed!偶数に絞れた。Sample/rxjava/Observable_T/filter/src/Observable_</t>…

Observable<T>.range

Observable<T>.rangeは、1つ目に指定した値から、2つ目に指定した値、までの範囲で生成。Observable (RxJava Javadoc 1.3.8)まあ、1から10の範囲でやってみる。で、 1 2 3 4 5 6 7 8 9 10 Completed!こうなる。Sample/rxjava/Observable_T/range/src/Observable</t>…

Observable<T>.just

Observable<T>.justで、今回はちょうど10個の引数を持つオーバーロードメソッドに10個の値を指定して生成する。Observable (RxJava Javadoc 1.3.8)まあこれ、1個だけのバージョンから、10個のバージョンまであるので、そこまでは自由に作れる。とすると、 1 2 3</t>…

Observable<T>.from

Observable<T>.fromで、配列からオブザーバブルを生成する。Observable (RxJava Javadoc 1.3.8)1から5までの配列を指定。 ラムダ式で、成功通知、エラー通知、完了通知をセット。 1 2 3 4 5 Completed!1から5と完了通知の"Completed!"まで出力できている。Sampl</t>…

PublishSubject<T>.onError

PublishSubject<T>.onErrorでエラー通知。PublishSubject (RxJava Javadoc 1.3.8)onErrorを呼び出した後の通知は実行されない。onErrorにnew Exceptionとメッセージ"Error!!!"を渡す。 B java.lang.Exception: Error!!!こんな感じで出力され、"C"は通知されない</t>…

PublishSubject<T>.onCompleted

PublishSubject<T>.onCompletedで完了通知。PublishSubject (RxJava Javadoc 1.3.8)onCompleted以降は、既に完了しているので通知されない。"B"をsubscribe以降に移動。 onCompletedの後ろに"D"、"E"を置く。 すると、 B C Completed!subscribeからonCompleted</t>…

Observable<T>.subscribe

Observable<T>.subscribeで、ラムダ式やオブザーバーを登録する。Observable (RxJava Javadoc 1.3.8)ラムダ式で、正常な発行通知、エラー通知、完了通知を指定。 C Completed!subject.onCompletedを呼んだ時の"Completed!"がちゃんと来てるのを確認。Sample/rxj</t>…

PublishSubject<T>.onNext

onNextで値を発行する。PublishSubject (RxJava Javadoc 1.3.8)PublishSubjectは、subscribeされた後の発行された値に対して通知する。 subscribeされる前の値は通知しない。こうすると、 Csubscribe後のCだけ通知される。Sample/rxjava/PublishSubject_T/on…

Subject<T,R>

Subject<T,R>は、PublishSubjectなどの基底クラス。 これのオブジェクトにインスタンスを入れても大抵は扱える。Subject (RxJava Javadoc 1.3.8)左のStringが入力型、右のStringが出力型らしいが、現時点ではよくわからんので、とりあえず両方Stringで試す。 A B </t,r>…

PublishSubject<T>.create

PublishSubject<T>.createで、オブジェクトインスタンスを生成する。PublishSubject (RxJava Javadoc 1.3.8)戻り値型をStringにしてみる。文字列を発行するように変更。 A B Cこの時点では特に問題なく動いた。Sample/rxjava/PublishSubject_T/create/src/Publi</t>…

PublishSubject<T>

RxJavaの場合、Subject<T>は抽象基底クラスで、具体的な一番基本的なクラスはPublishSubject<T>らしい。PublishSubject (RxJava Javadoc 1.3.8)PublishSubject.createで、生成したsubjectで、subscribeでラムダ式をセット。 1, 2, 3を発行し完了。 1 2 3こうなる。</t></t>…

Observable<T>

Reactive ExtensionsとRxJavaの違いで、一番最初に躓いたのは、Reactive ExtensionsにはIObservable<T>インターフェースがあり、実装して独自のCustomObservable<T>を作ったりできるが、RxJavaの場合は、Observable<T>はインターフェースではなくクラスである。RxJava</t></t></t>…

Observer<T>

RxJavaは、JavaでReactiveX(リアクティブプログラミング)を実現するためのライブラリ。GitHub - ReactiveX/RxJava: RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences…