거의.
데코레이터를 작성하고 수정되지 않은 메소드를 변경하지 않고 위임 할 수 있습니다. 그런 다음 TreeSet
등에 사용할 수 있습니다.
또한 sizeAsObservable()
(size()가 적용됨)을 추가 할 수도 있습니다. 그런 다음 필터링 할 수 있습니다.
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
나는 그것이 도움이되는 것을 볼 수 없다. –