今回は「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 件のコメント:
コメントを投稿