为什么需要RxJavaasObservable
?
从技术上讲,每个主题都已经是一个可观察的。它比仅仅铸造它有什么优势
Observable obs = subject;
如果你只是投Subject
to an Observable
那么你仍然可以使用它作为Subject
通过将其投射回来:
PublishSubject<String> subject = PublishSubject.create();
subject.subscribe(System.out::println);
Observable<String> observable = subject;
((PublishSubject<String>) observable).onNext("Hello, world!");
Observable.asObservable()
实际上并没有将类型转换为Observable
;它实际上包装了当前Observable
。这意味着没有人可以访问上游Observable
.
使用相同的代码asObservable()
崩溃与ClassCastException
:
PublishSubject<String> subject = PublishSubject.create();
subject.subscribe(System.out::println);
Observable<String> observable = subject.asObservable();
((PublishSubject<String>) observable).onNext("Hello, world!");
这很像final
修饰符。有时您不希望代码对一切拥有 100% 的控制权。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)