这篇文章没啥技术的东西,只是看源码的时候发现了RxJava2类的命名规则,感觉了解一下有助于看源码:
先上示例代码:
Observable.create((ObservableOnSubscribe<Integer>) e -> {
e.onNext(1);
e.onNext(2);
e.onComplete();
}).map(new Function<Integer, Integer>() {
@Override
public Integer apply(Integer i) throws Exception {
return i + 10;
}
})
.doOnNext(new Consumer<Integer>() {
@Override
public void accept(Integer i) throws Exception {
System.out.println("doOnNext : i= " + i);
}
})
.subscribe(i -> System.out.println("onNext : i= " + i));
- 在Observable.create方法里会生成一个ObservableOnSubscribe参数的包装类,类名是Observable+方法名,所以这里叫ObservableCreate
- .map方法会生成一个Function参数的包装类,类名叫ObservableMap
看到这里就明白了,Observable中的方法会生成Observable+方法名的类,包装了传递的参数
- 在Observable的子类的subscribeActual方法里,调用source.subscribe方法时,传递的参数的类名是当前类的类名去掉Observable后,在最后加上Observer,如ObservableMap类给source.subscribe传递的就是MapObserver