Rxjava3 创建Obervable被观察者 的相关操作符
Posted 祥云湾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rxjava3 创建Obervable被观察者 的相关操作符相关的知识,希望对你有一定的参考价值。
1、create
/**
* creat是一个比较原始的创建Obserable的操作符
*/
private static void test01()
//正常调用形式
// Observable.create(new ObservableOnSubscribe<String>()
// @Override
// public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable
// emitter.onNext("emitter Obervable");
// emitter.onComplete();
//
// )
//lamda 表达式形式
Observable.create((ObservableOnSubscribe<String>) emitter ->
emitter.onNext("---emitter Obervable");
emitter.onComplete();
).subscribe(new Observer<String>()
@Override
public void onSubscribe(@NonNull Disposable d)
System.out.println("onSubscribe"+d.toString());
@Override
public void onNext(@NonNull String s)
System.out.println("onNext"+s.toString());
@Override
public void onError(@NonNull Throwable e)
System.out.println("onError"+e.toString());
@Override
public void onComplete()
System.out.println("onComplete");
);
执行结果:
---- IntelliJ IDEA coverage runner ----
sampling ...
include patterns:
com\\.example\\.test02\\.ui\\.Test\\.rxjava3\\..*
exclude patterns:
onSubscribeCreateEmitternull
onNext---emitter Obervable
onComplete
Class transformation time: 0.0136008s for 455 classes or 2.9891868131868132E-5s per class
2、just
/**
* just 是对creat的一个简写
* 相当于把在onnext中写的内容写到了just里面
*/
private static void test02()
Observable.just("测试just创建Obserable")
.subscribe(new Observer<String>()
@Override
public void onSubscribe(@NonNull Disposable d)
System.out.println("onSubscribe"+d.toString());
@Override
public void onNext(@NonNull String s)
System.out.println("onNext"+s.toString());
@Override
public void onError(@NonNull Throwable e)
System.out.println("onError"+e.toString());
@Override
public void onComplete()
System.out.println("onComplete");
);
执行结果:
---- IntelliJ IDEA coverage runner ----
sampling ...
include patterns:
com\\.example\\.test02\\.ui\\.Test\\.rxjava3\\..*
exclude patterns:
onSubscribe0
onNext测试just创建Obserable
onComplete
Class transformation time: 0.0143753s for 272 classes or 5.2850367647058824E-5s per class
3、from
rxjava2中的from已经去掉,替换成了from具体类型的方法。
a、list集合形式的调用方法:
/**
* from 将数据进行拆分转换
* 可以接受列表和数组,可以转换成各种类型的对象和数据类型
*/
private static void test03()
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
int[] intarray=1,2,3,4,5;
Observable.fromIterable(list).subscribe(new Observer<Integer>()
@Override
public void onSubscribe(@NonNull Disposable d)
System.out.println("onSubscribe" + d.toString());
@Override
public void onNext(@NonNull Integer integer)
System.out.println("onNext--" + integer.toString());
@Override
public void onError(@NonNull Throwable e)
System.out.println("onError" + e.toString());
@Override
public void onComplete()
System.out.println("onComplete");
);
执行结果:
---- IntelliJ IDEA coverage runner ----
sampling ...
include patterns:
com\\.example\\.test02\\.ui\\.Test\\.rxjava3\\..*
exclude patterns:
onSubscribeio.reactivex.rxjava3.internal.operators.observable.ObservableFromIterable$FromIterableDisposable@16f65612
onNext--1
onNext--2
onNext--3
onNext--4
onNext--5
onComplete
b、数组形式的调用方法
注意这里必须是Integer 等对象形式的数组类型。
/**
* from 将数据进行拆分转换
* 可以接受列表和数组,可以转换成各种类型的对象和数据类型
*/
private static void test04()
// ArrayList<Integer> list = new ArrayList<>();
// list.add(1);
// list.add(2);
// list.add(3);
// list.add(4);
// list.add(5);
Integer[] intarray=1,2,3,4,5;
Observable.fromArray(intarray).subscribe(new Observer<Integer>()
@Override
public void onSubscribe(@NonNull Disposable d)
System.out.println("onSubscribe" + d.toString());
@Override
public void onNext(@NonNull Integer integer)
System.out.println("onNext--" + integer.toString());
@Override
public void onError(@NonNull Throwable e)
System.out.println("onError" + e.toString());
@Override
public void onComplete()
System.out.println("onComplete");
);
运行结果:
---- IntelliJ IDEA coverage runner ----
sampling ...
include patterns:
com\\.example\\.test02\\.ui\\.Test\\.rxjava3\\..*
exclude patterns:
onSubscribeio.reactivex.rxjava3.internal.operators.observable.ObservableFromArray$FromArrayDisposable@16f65612
onNext--1
onNext--2
onNext--3
onNext--4
onNext--5
onComplete
Class transformation time: 0.0157131s for 274 classes or 5.7347080291970804E-5s per class
4、defer
5、
以上是关于Rxjava3 创建Obervable被观察者 的相关操作符的主要内容,如果未能解决你的问题,请参考以下文章