なぜRxJavaにasObservable
が必要ですか?Subject.asObservableとは何が良いですか?
技術的には、それぞれの科目はすでにObservableです。私は、その後の加入者が使用する放射された値を「記憶」するために必要なので、私はBehaviourSubjectを使用だけ
Observable obs = subject;
なぜRxJavaにasObservable
が必要ですか?Subject.asObservableとは何が良いですか?
技術的には、それぞれの科目はすでにObservableです。私は、その後の加入者が使用する放射された値を「記憶」するために必要なので、私はBehaviourSubjectを使用だけ
Observable obs = subject;
あなたはまだそれをバックキャストして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
にアクセスすることはできません。
ClassCastException
とasObservable()
クラッシュを使用して、同じコード:
PublishSubject<String> subject = PublishSubject.create();
subject.subscribe(System.out::println);
Observable<String> observable = subject.asObservable();
((PublishSubject<String>) observable).onNext("Hello, world!");
それはfinal
修飾子のようにたくさんあります。場合によっては、コードがすべてを100%制御できるようにしたくない場合もあります。
のようにそれをキャストを超えることの利点は何ですか。 Observableを返却して、Subscribersがデータを送信しようとしていないようにしました。あなただけObservable
にSubject
をキャストした場合
私は実装上のインタフェースを渡す方が良い理由について議論したくないので、Observableから継承しているだけのメリットを知りたいと思っています。 –
Javadocは、Observableのサブクラスを実装しているが、このサブクラスのプロパティとメソッドをObservableに渡す人を誰でも隠したい場合に便利です。これはあなたが探しているものですか? – AndroidEx
AsObservableでカプセル化:http://www.introtorx.com/Content/v1.0.10621.0/09_SideEffects.html#AsObservable –
私は以前のドキュメントを読んでいます。しかし、スーパークラスを型として返すだけではどんな利点がありますか? –