Class LazyReference<T>

All Implemented Interfaces:
Serializable

public abstract class LazyReference<T> extends LockableObject
Soft reference with lazy initialization under lock
See Also:
  • Constructor Details

    • LazyReference

      public LazyReference(ReferenceBundle bundle)
      Creates a lazily initialized reference that stores computed values using the supplied bundle.
      Parameters:
      bundle - the reference strategy to use after initialization
  • Method Details

    • get

      public T get()
      Returns the current value, initializing or recreating it when necessary.
      Returns:
      the current value, which may be null
    • clear

      public void clear()
      Discards the cached state so the next get() call recomputes it.
    • initValue

      public abstract T initValue()
      Computes the value to cache for future get() calls.
      Returns:
      the value to cache, or null to cache a null result
    • toString

      public String toString()
      Returns the current cached value as a string, or <null> when no value is available.
      Overrides:
      toString in class AbstractQueuedSynchronizer
      Returns:
      a string form of the cached value