我正在查看CompositeDisposable
个文档,它说.dispose()
是幂等的。 .add()
也是幂等的吗?
CompositeDisposable compositeDisposable = ...
Disposable disposable = ...
compositeDisposable.add(disposable);
compositeDisposable.add(disposable);
compositeDisposable.add(disposable);
CompositeDisposable跟踪有多少个Disposables?我看到它由OpenHashSet
支持,但OpenHashSet.add()
的工作方式并不十分清楚。
答案 0 :(得分:1)
文档从Disposable.dispose()
复制,并向实现它的开发人员提出建议。当然,他们也CompositeDisposable.dispose()
也是幂等的。
对于CompositeDisposable.add(Disposable)
,您已经注意到它由OpenHashSet
支持。由于这是一个Set
"实现",它确保元素只添加一次,因此add()
对两个类都是幂等的。