作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 RxJava 需要 asObservable
?
从技术上讲,每个主题都已经是一个可观察的。它比直接类型转换有什么优势
Observable obs = subject;
最佳答案
如果您只是将 Subject
转换为 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% 的控制权。
关于rx-java - subject.asObservable 有什么用处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35142968/
我正在阅读有关 Edit Distance between 2 strings 的问题。 它可以使用编辑距离的公式通过动态规划来解决。我无法理解的是它的用处。首先,这与知道 2 个字符串的最长公共(p
我是一名优秀的程序员,十分优秀!