上一节,我们讲了RxJava的Hello World入门程序。今天,我们再使用Java 8的lambda来重写一遍该程序。
先回忆下上一节的小程序,如下:
Flowable.just("Hello world 123456").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println(s);
}
});
下面是使用Java 8支持的lambda表达式来重写的,如下:
package rxjava.examples;
import io.reactivex.*;
public class HelloWorld {
public static void main(String[] args) {
Flowable.just("Hello world 123456").subscribe(System.out::println);
}
}
要让Android Studio支持Java 8,需要在app的build.gradle中配置如下项:
android {
....
defaultConfig {
....
jackOptions {
enabled true
}
}
buildTypes {
....
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
}
下面介绍一下RxJava 2的一些基础类及含义:
- io.reactivex.Flowable : 0..N个流,支持Reactive-Streams和backpressure
- io.reactivex.Observable : 0..N 个流,,没有backpressure
- io.reactivex.Single : 1个流,仅有一个item或error
- io.reactivex.Completable :1个流,没有item,仅有一个completion或error signal
- io.reactivex.Maybe :1个流,没有item,仅有一个item或error
接下来的几节会详细讲解这些类。