Java 是否发出'onCompleted()'的性能含义
我有类似的东西Java 是否发出'onCompleted()'的性能含义,java,rx-java,rx-android,Java,Rx Java,Rx Android,我有类似的东西 Button button = new Button(parent, SWT.PUSH); PublishSubject<Event> subject = PublishSubject.create(); button.addListener(SWT.Selection, e -> subject.onNext(e)); subject.subscribe(e -> System.out.println("selection=" + e)); 据我所知,
Button button = new Button(parent, SWT.PUSH);
PublishSubject<Event> subject = PublishSubject.create();
button.addListener(SWT.Selection, e -> subject.onNext(e));
subject.subscribe(e -> System.out.println("selection=" + e));
据我所知,这只是增加了另一个需要GC’ed的匿名类,这似乎是一个糟糕的交易。我想的对吗?发出我所缺少的
onCompleted()
有什么好处吗?在这种情况下,调用onCompleted
没有任何好处。如果你的被观察者使用了一些资源,一旦你完成了被观察者的使用,你就需要处理这些资源,那么我会说你应该通过一个终止事件或者取消订阅
如果您想在这些情况下保持安全,通常我会从您订阅的
订阅者
实例中取消订阅(创建一个实例并保留对它的引用,以便您可以调用订阅者。unsubscribe()
)。感谢您的输入Dave:)
button.addListener(SWT.Dispose, e -> subject.onCompleted());