ページ

2015年5月28日木曜日

新しい技術を学んでみる 4 - RxJava -

今回は「RxJava」

最近よく聞くリアクティブプログラミング。
その手法を取り入れたRxJavaを触ってみる。

公式ページ
https://github.com/ReactiveX/RxJava

まずはダウンロード & ビルド!!
$ git clone https://github.com/ReactiveX/RxJava.git
Cloning into 'RxJava'...
remote: Counting objects: 49455, done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 49455 (delta 25), reused 0 (delta 0), pack-reused 49376
Receiving objects: 100% (49455/49455), 17.71 MiB | 142.00 KiB/s, done.
Resolving deltas: 100% (24294/24294), done.
Checking connectivity... done.
$ ./gradlew build
Inferred version: 1.0.12-SNAPSHOT
[buildinfo] Properties file path was not found! (Relevant only for builds running on a CI Server)
:compileJava
:check
:compileExamplesJava UP-TO-DATE
:processExamplesResources UP-TO-DATE
:examplesClasses UP-TO-DATE
:build

BUILD SUCCESSFUL

ん〜なんか警告がいっぱい出ていたような気もするが。。。

とりあえず/build配下に色々できてる。


上記の*.jarファイルをインポートしてみる。(※SNAPSHOTが付いているのが気になる・・・)

https://github.com/ReactiveX/RxJava/wiki/How-To-Use-RxJava のJavaのとこにあるサンプルプログラムを実行した所。





おっ!!ちゃんと動いている。
余計なjarを排除し、rxjava-1.0.12-SNAPSHOT.jarだけにした。

↓別のサンプル
public static void test1() {
Observable.from(new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
.filter(new Func1<Integer, Boolean>() {

@Override
public Boolean call(Integer i) {
// TODO Auto-generated method stub
return (i % 2) == 0;
}
})
.subscribe(new Observer<Integer>() {

@Override
public void onCompleted() {
System.out.println("completed");
}

@Override
public void onError(Throwable arg0) {
// TODO Auto-generated method stub
}

@Override
public void onNext(Integer i) {
System.out.println("onNext " + i);
}
});

}

↓結果
onNext 2
onNext 4
onNext 6
onNext 8
onNext 10

completed

さらにどのスレッドで実行するかなどのメソッドもあるらしい。
これは便利そう。









0 件のコメント:

コメントを投稿