类 AbstractValueAdaptingCache

java.lang.Object
cn.taketoday.cache.support.AbstractValueAdaptingCache
所有已实现的接口:
Cache
直接已知子类:
CaffeineCache, ConcurrentMapCache

public abstract class AbstractValueAdaptingCache extends Object implements Cache
Common base class for Cache implementations that need to adapt null values (and potentially other such special values) before passing them on to the underlying store.

Transparently replaces given null user values with an internal NullValue.INSTANCE, if configured to support null values (as indicated by isAllowNullValues().

从以下版本开始:
4.0 2022/3/9 20:45
作者:
Juergen Hoeller, Harry Yang
  • 构造器详细资料

    • AbstractValueAdaptingCache

      protected AbstractValueAdaptingCache(boolean allowNullValues)
      Create an AbstractValueAdaptingCache with the given setting.
      参数:
      allowNullValues - whether to allow for null values
  • 方法详细资料

    • isAllowNullValues

      public final boolean isAllowNullValues()
      Return whether null values are allowed in this cache.
    • get

      @Nullable public Cache.ValueWrapper get(Object key)
      从接口复制的说明: Cache
      Return the value to which this cache maps the specified key.

      Returns null if the cache contains no mapping for this key; otherwise, the cached value (which may be null itself) will be returned in a Cache.ValueWrapper.

      指定者:
      get 在接口中 Cache
      参数:
      key - the key whose associated value is to be returned
      返回:
      the value to which this cache maps the specified key, contained within a Cache.ValueWrapper which may also hold a cached null value. A straight null being returned means that the cache contains no mapping for this key.
      另请参阅:
    • get

      @Nullable public <T> T get(Object key, @Nullable Class<T> type)
      从接口复制的说明: Cache
      Return the value to which this cache maps the specified key, generically specifying a type that return value will be cast to.

      Note: This variant of get does not allow for differentiating between a cached null value and no cache entry found at all. Use the standard Cache.get(Object) variant for that purpose instead.

      指定者:
      get 在接口中 Cache
      参数:
      key - the key whose associated value is to be returned
      type - the required type of the returned value (may be null to bypass a type check; in case of a null value found in the cache, the specified type is irrelevant)
      返回:
      the value to which this cache maps the specified key (which may be null itself), or also null if the cache contains no mapping for this key
      另请参阅:
    • lookup

      @Nullable protected abstract Object lookup(Object key)
      Perform an actual lookup in the underlying store.
      参数:
      key - the key whose associated value is to be returned
      返回:
      the raw store value for the key, or null if none
    • fromStoreValue

      @Nullable protected Object fromStoreValue(@Nullable Object storeValue)
      Convert the given value from the internal store to a user value returned from the get method (adapting null).
      参数:
      storeValue - the store value
      返回:
      the value to return to the user
    • toStoreValue

      protected Object toStoreValue(@Nullable Object userValue)
      Convert the given user value, as passed into the put method, to a value in the internal store (adapting null).
      参数:
      userValue - the given user value
      返回:
      the value to store
    • toValueWrapper

      @Nullable protected Cache.ValueWrapper toValueWrapper(@Nullable Object storeValue)
      Wrap the given store value with a SimpleValueWrapper, also going through fromStoreValue(java.lang.Object) conversion. Useful for get(Object) and Cache.putIfAbsent(Object, Object) implementations.
      参数:
      storeValue - the original value
      返回:
      the wrapped value