Class SingletonSupplier<T>
java.lang.Object
org.springframework.util.function.SingletonSupplier<T>
- Type Parameters:
T- the type of results supplied by this supplier
- All Implemented Interfaces:
Supplier<T>
A
Supplier decorator that caches a singleton result and
makes it available from get() (nullable) and obtain() (null-safe).
A SingletonSupplier can be constructed via of factory methods
or via constructors that provide a default supplier as a fallback. This is
particularly useful for method reference suppliers, falling back to a default
supplier for a method that returned null and caching the result.
- Since:
- 5.1
- Author:
- Juergen Hoeller, Yanming Zhou
-
Constructor Summary
ConstructorsConstructorDescriptionSingletonSupplier(Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given instance supplier and a default supplier for the case when the instance isnull.SingletonSupplier(T instance, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given singleton instance and a default supplier for the case when the instance isnull. -
Method Summary
Modifier and TypeMethodDescriptionget()Get the shared singleton instance for this supplier.obtain()Obtain the shared singleton instance for this supplier.static <T> SingletonSupplier<T>Build aSingletonSupplierwith the given supplier.static <T> SingletonSupplier<T>of(T instance) Build aSingletonSupplierwith the given singleton instance.static <T> SingletonSupplier<T>ofNullable(Supplier<T> supplier) Build aSingletonSupplierwith the given supplier.static <T> SingletonSupplier<T>ofNullable(T instance) Build aSingletonSupplierwith the given singleton instance.
-
Constructor Details
-
SingletonSupplier
Build aSingletonSupplierwith the given singleton instance and a default supplier for the case when the instance isnull.- Parameters:
instance- the singleton instance (potentiallynull)defaultSupplier- the default supplier as a fallback
-
SingletonSupplier
public SingletonSupplier(@Nullable Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given instance supplier and a default supplier for the case when the instance isnull.- Parameters:
instanceSupplier- the immediate instance supplierdefaultSupplier- the default supplier as a fallback
-
-
Method Details
-
get
Get the shared singleton instance for this supplier. -
obtain
Obtain the shared singleton instance for this supplier.- Returns:
- the singleton instance (never
null) - Throws:
IllegalStateException- in case of no instance
-
of
Build aSingletonSupplierwith the given singleton instance.- Parameters:
instance- the singleton instance (nevernull)- Returns:
- the singleton supplier (never
null)
-
ofNullable
Build aSingletonSupplierwith the given singleton instance.- Parameters:
instance- the singleton instance (potentiallynull)- Returns:
- the singleton supplier, or
nullif the instance wasnull
-
of
Build aSingletonSupplierwith the given supplier.- Parameters:
supplier- the instance supplier (nevernull)- Returns:
- the singleton supplier (never
null)
-
ofNullable
Build aSingletonSupplierwith the given supplier.- Parameters:
supplier- the instance supplier (potentiallynull)- Returns:
- the singleton supplier, or
nullif the instance supplier wasnull
-