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
Abstract base implementation of an
Observer
with support for cancelling a
subscription via cancel()
(synchronously) and calls onStart()
when the subscription happens.
All pre-implemented final methods are thread-safe.
Use the protected cancel()
to dispose the sequence from within an
onNext
implementation.
Like all other consumers, DefaultObserver
can be subscribed only once.
Any subsequent attempt to subscribe it to a new source will yield an
IllegalStateException
with message "It is not allowed to subscribe with a(n) <class name> multiple times."
.
Implementation of onStart()
, Observer.onNext(Object)
, Observer.onError(Throwable)
and Observer.onComplete()
are not allowed to throw any unchecked exceptions.
If for some reason this can't be avoided, use Observable.safeSubscribe(io.reactivex.rxjava3.core.Observer)
instead of the standard subscribe()
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final 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.final void
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 Details
-
upstream
-
-
Constructor Details
-
DefaultObserver
public DefaultObserver()
-
-
Method Details
-
onSubscribe
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.
-