かなりです。
デコレータを作成し、変更されていないメソッドを変更せずにデリゲートすることはできますが、 そして、あなたはそれをフィルタリングすることができます。そして、あなたはおそらく、あなただけsizeAsObservable()
(サイズ()取られる)を追加することができ、また、などTreeSet
に
を使用することができます。
class ObservableSet implements Set<T> {
private final Set<T> set;
private final BehaviorSubject<T> sizeSubject = BehaviorSubject.create(); //
public ObservableSet(Set<T> set) {
this.set = set;
subject.onNext(set.size());
}
public Observable<Integer> sizeAsObservable() {
return sizeSubject.asObservable();
}
public add(T t){
set.add(t);
sizeSubject.onNext(set.size());
}
...
}
...とちょうどあなたがちょうど空にしたい場合は、0をフィルタリングし、あなたが唯一のセットが空になったときに興味を持っていた言ったように、最初の結果をスキップします。
obsSet.sizeAsObservable().skip(1).filter(size -> size == 0)
あなたが削除を管理している場合はそれ以外の場合は、ちょうどそのチェックまたはそこにそれを追跡!
ありがとう@pRaNaY、おそらく私のRxJavaの新しさのために、あなたの提案をどのように使って問題を解決するか分かりません。 – mtyson
どのように役立つかわかりません。 –