- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Represents a cancel or cleanup operation for an action that can be cancelled or
that allocated resources. Subscriptions can be obtained, for example, as a result
of registering a callback, starting a timer, or allocating resources. They
provide a convenient way for subscribers to cancel these actions at a later time,
without requiring additional information or even access to the source from where
they were originally obtained.
class Publisher { public Subscription subscribe(Consumer<NewsLetter> subscriber) { register(subscriber); // return a Subscription which unregisters the original subscriber return () -> unregister(subscriber); } }
Subscriptions can also be combined using combine(javafx.util.Subscription...)
and and(javafx.util.Subscription)
,
which allows for multiple subscriptions to be unsubscribed together. This is
useful when they share the same lifecycle, for example, when performing
cleanup for the same object.
- Since:
- 21
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptiondefault Subscription
and
(Subscription other) Combines thisSubscription
with the givenSubscription
and returns a newSubscription
which will cancel both when cancelled.static Subscription
combine
(Subscription... subscriptions) Returns aSubscription
which combines all of the given subscriptions.void
Cancels this subscription, or does nothing if already cancelled.
-
Field Details
-
EMPTY
An empty subscription. Does nothing when cancelled.
-
-
Method Details
-
combine
Returns aSubscription
which combines all of the given subscriptions.- Parameters:
subscriptions
- an array of subscriptions to combine, cannot benull
or containnull
- Returns:
- a
Subscription
, nevernull
- Throws:
NullPointerException
- whensubscriptions
isnull
or containsnull
-
unsubscribe
void unsubscribe()Cancels this subscription, or does nothing if already cancelled.- Implementation Requirements:
- Implementors must ensure the implementation is idempotent (a no-op if called more than once).
-
and
Combines thisSubscription
with the givenSubscription
and returns a newSubscription
which will cancel both when cancelled.This is equivalent to
Subscription.combine(this, other)
.- Parameters:
other
- anotherSubscription
, cannot benull
- Returns:
- a combined
Subscription
which will cancel both when cancelled, nevernull
- Throws:
NullPointerException
- whenother
isnull
-