T - result type of the evaluationpublic interface Lazy<T>
extends java.util.function.Supplier<T>
The underlying value is only created if the Supplier.get() method is called the first time.
Later calls will return the value created on the first call.
The getting is performed in the current thread.
For background loading see Late.
| Modifier and Type | Method and Description |
|---|---|
static <V> Lazy<V> |
from(ReferenceType referenceType,
java.util.function.Supplier<? extends V> supplier)
Helper method allowing to define the type of the reference
which holds the value after it is provided by the supplier.
|
static <V> Lazy<V> |
from(java.util.function.Supplier<? extends V> supplier)
Create a lazy evaluation from a supplier.
|
static <V> Lazy<V> |
fromFragile(FragileFunction0<? extends V,?> fragileSupplier)
Create a lazy evaluation from a fragile supplier.
|
static <V> Lazy<V> |
softFrom(java.util.function.Supplier<? extends V> supplier)
Create a lazy evaluation from a fragile supplier,
but reference the value internally only via a soft reference.
|
static <V> Lazy<V> |
softFromFragile(FragileFunction0<? extends V,?> fragileSupplier)
Create a lazy evaluation from a fragile supplier,
but reference the value internally only via a soft reference.
|
static <V> Lazy<V> |
weakFrom(java.util.function.Supplier<? extends V> supplier)
Create a lazy evaluation from a fragile supplier,
but reference the value internally only via a weak reference.
|
static <V> Lazy<V> |
weakFromFragile(FragileFunction0<? extends V,?> fragileSupplier)
Create a lazy evaluation from a fragile supplier,
but reference the value internally only via a weak reference.
|
static <V> java.util.function.Supplier<V> |
wrapFragile(FragileFunction0<? extends V,?> fragileSupplier)
Wrap a fragile supplier to be fragile no longer.
|
@NotNull static <V> Lazy<V> from(@NotNull java.util.function.Supplier<? extends V> supplier)
Supplier.get().V - value type the lazy evaluation will providesupplier - The supplier which creates the value.
Will only be called at most once.@NotNull static <V> Lazy<V> fromFragile(@NotNull FragileFunction0<? extends V,?> fragileSupplier)
Supplier.get() method of the returned
Lazy will throw a LazyEvalutionFailure.V - value type of the returned lazy evaluatorfragileSupplier - supplier which might throw a checked exception@NotNull static <V> Lazy<V> from(@NotNull ReferenceType referenceType, @NotNull java.util.function.Supplier<? extends V> supplier)
V - value type of the returned lazy evaluatorreferenceType - reference type used for keeping the valuesupplier - the value supplier, which might be called more than once depending on referenceType@NotNull static <V> Lazy<V> softFrom(@NotNull java.util.function.Supplier<? extends V> supplier)
This allows the value to be garbage-collected when it is no longer used elsewhere, with the cost of creating it again if it is requested afterward.
V - value type of the returned lazy evaluatorsupplier - supplier which is possibly called more than once,
so it should be idempotentSoftReference@NotNull static <V> Lazy<V> softFromFragile(@NotNull FragileFunction0<? extends V,?> fragileSupplier)
This allows the value to be garbage-collected when it is no longer used elsewhere, with the cost of creating it again if it is requested afterward.
V - value type of the returned lazy evaluatorfragileSupplier - supplier which is possibly called more than once,
so it should be idempotentSoftReference@NotNull static <V> Lazy<V> weakFrom(@NotNull java.util.function.Supplier<? extends V> supplier)
This allows the value to be garbage-collected when it is no longer used elsewhere, with the cost of creating it again if it is requested afterward.
V - value type of the returned lazy evaluatorsupplier - supplier which is possibly called more than once,
so it should be idempotentWeakReference@NotNull static <V> Lazy<V> weakFromFragile(@NotNull FragileFunction0<? extends V,?> fragileSupplier)
This allows the value to be garbage-collected when it is no longer used elsewhere, with the cost of creating it again if it is requested afterward.
V - value type of the returned lazy evaluatorfragileSupplier - supplier which is possibly called more than once,
so it should be idempotentWeakReference@NotNull static <V> java.util.function.Supplier<V> wrapFragile(@NotNull FragileFunction0<? extends V,?> fragileSupplier)
V - type of supplied valuefragileSupplier - fragile supplierLazyEvalutionFailure if
the original fragileSupplier throws an exception