Package io.reactivex.rxjava3.observers
Class DefaultObserver<T>
- java.lang.Object
-
- io.reactivex.rxjava3.observers.DefaultObserver<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
Observer<T>
- Direct Known Subclasses:
BlockingObservableMostRecent.MostRecentObserver
public abstract class DefaultObserver<T> extends java.lang.Object implements Observer<T>
Abstract base implementation of anObserver
with support for cancelling a subscription viacancel()
(synchronously) and callsonStart()
when the subscription happens.All pre-implemented final methods are thread-safe.
Use the protected
cancel()
to dispose the sequence from within anonNext
implementation.Like all other consumers,
DefaultObserver
can be subscribed only once. Any subsequent attempt to subscribe it to a new source will yield anIllegalStateException
with message"It is not allowed to subscribe with a(n) <class name> multiple times."
.Implementation of
onStart()
,Observer.onNext(Object)
,Observer.onError(Throwable)
andObserver.onComplete()
are not allowed to throw any unchecked exceptions. If for some reason this can't be avoided, useObservable.safeSubscribe(io.reactivex.rxjava3.core.Observer)
instead of the standardsubscribe()
method.Example
Observable.range(1, 5) .subscribe(new DefaultObserver<Integer>() { @Override public void onStart() { System.out.println("Start!"); } @Override public void onNext(Integer t) { if (t == 3) { cancel(); } System.out.println(t); } @Override public void onError(Throwable t) { t.printStackTrace(); } @Override public void onComplete() { System.out.println("Done!"); } });
-
-
Field Summary
Fields Modifier and Type Field Description private Disposable
upstream
-
Constructor Summary
Constructors Constructor Description DefaultObserver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
cancel()
Cancels the upstream's disposable.protected void
onStart()
Called once the subscription has been set on this observer; override this to perform initialization.void
onSubscribe(@NonNull Disposable d)
Provides theObserver
with the means of cancelling (disposing) the connection (channel) with theObservable
in both synchronous (from withinObserver.onNext(Object)
) and asynchronous manner.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.reactivex.rxjava3.core.Observer
onComplete, onError, onNext
-
-
-
-
Field Detail
-
upstream
private Disposable upstream
-
-
Method Detail
-
onSubscribe
public final void onSubscribe(@NonNull @NonNull Disposable d)
Description copied from interface:Observer
Provides theObserver
with the means of cancelling (disposing) the connection (channel) with theObservable
in both synchronous (from withinObserver.onNext(Object)
) and asynchronous manner.- Specified by:
onSubscribe
in interfaceObserver<T>
- Parameters:
d
- theDisposable
instance whoseDisposable.dispose()
can be called anytime to cancel the connection
-
cancel
protected final void cancel()
Cancels the upstream's disposable.
-
onStart
protected void onStart()
Called once the subscription has been set on this observer; override this to perform initialization.
-
-