public abstract class Subject<T,R> extends Observable<R> implements Observer <T>
Observable.OnSubscribe <T>, Observable.Operator <R,T>, Observable.Transformer <T,R> | Modifier | Constructor and Description |
|---|---|
protected |
Subject(Observable
|
| Modifier and Type | Method and Description |
|---|---|
Throwable |
getThrowable()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
T |
getValue()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
Object |
getValues()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
T[] |
getValues(T[] a)
Deprecated.
this method will be moved to each Subject class individually in the next release
|
boolean |
hasCompleted()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
abstract boolean |
hasObservers()
|
boolean |
hasThrowable()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
boolean |
hasValue()
Deprecated.
this method will be moved to each Subject class individually in the next release
|
SerializedSubject |
toSerialized()
Wraps a
Subject so that it is safe to call its various
on methods from different threads.
|
all, amb, amb, amb, amb, amb, amb, amb, amb, amb, ambWith, asObservable, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, cache, cache, cast, collect, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, compose, concat, concat, concat, concat, concat, concat, concat, concat, concat, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatMap, concatMapEager, concatMapEager, concatWith, contains, count, countLong, create, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinctUntilChanged, distinctUntilChanged, doOnCompleted, doOnEach, doOnEach, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, doOnUnsubscribe, elementAt, elementAtOrDefault, empty, error, exists, extend, filter, finallyDo, first, first, firstOrDefault, firstOrDefault, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapIterable, flatMapIterable, forEach, forEach, forEach, from, from, from, from, from, fromCallable, groupBy, groupBy, groupJoin, ignoreElements, interval, interval, interval, interval, isEmpty, join, just, just, just, just, just, just, just, just, just, just, last, last, lastOrDefault, lastOrDefault, lift, limit, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, nest, never, observeOn, ofType, onBackpressureBlock, onBackpressureBlock, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureLatest, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onExceptionResumeNext, publish, publish, range, range, reduce, reduce, repeat, repeat, repeat, repeat, repeatWhen, repeatWhen, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, retry, retry, retry, retryWhen, retryWhen, sample, sample, sample, scan, scan, sequenceEqual, sequenceEqual, serialize, share, single, single, singleOrDefault, singleOrDefault, skip, skip, skip, skipLast, skipLast, skipLast, skipUntil, skipWhile, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, switchIfEmpty, switchMap, switchOnNext, take, take, take, takeFirst, takeLast, takeLast, takeLast, takeLast, takeLast, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeUntil, takeUntil, takeWhile, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timer, timer, timestamp, timestamp, toBlocking, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toSingle, toSortedList, toSortedList, toSortedList, toSortedList, unsafeSubscribe, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWithclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonCompleted, onError, onNextprotected Subject(Observable.OnSubscribe <R> onSubscribe)
public abstract boolean hasObservers()
public final SerializedSubject<T ,R> toSerialized()
Subject so that it is safe to call its various
on methods from different threads.
When you use an ordinary Subject as a Subscriber, you must take care not to call its Observer method (or its other on methods) from multiple threads, as this could lead to non-serialized calls, which violates the Observable contract and creates an ambiguity in the resulting Subject.
To protect a Subject from this danger, you can convert it into a SerializedSubject with code like the following:
mySafeSubject = myUnsafeSubject.toSerialized();
@Experimental @Deprecated public boolean hasThrowable()
The operation is threadsafe.
true if the subject has received a throwable through
onError.
@Experimental @Deprecated public boolean hasCompleted()
The operation is threadsafe.
true if the subject completed normally via
onCompleted
@Experimental @Deprecated public ThrowablegetThrowable()
The operation is threadsafe.
null if the subject hasn't terminated yet or if it terminated normally.
@Experimental @Deprecated public boolean hasValue()
Use the getValue() method to retrieve such a value.
Note that unless hasCompleted() or hasThrowable() returns true, the value retrieved by getValue() may get outdated.
The operation is threadsafe.
true if and only if the subject has some value but not an error
@Experimental @Deprecated public T getValue()
The method can return null for various reasons. Use hasValue(), hasThrowable() and hasCompleted() to determine if such null is a valid value, there was an exception or the Subject terminated without receiving any value.
The operation is threadsafe.
null if the Subject doesn't have a value, has terminated with an exception or has an actual
null as a value.
@Experimental @Deprecated public Object[] getValues()
The operation is threadsafe.
@Experimental @Deprecated public T[] getValues(T[] a)
a array or creates a new array if it has not enough capacity.
If the subject's values fit in the specified array with room to spare (i.e., the array has more elements than the list), the element in the array immediately following the end of the subject's values is set to null.
The operation is threadsafe.
a - the array to fill in
a if it had enough capacity or a new array containing the available values