public interface LoadingCache<K,V> extends Cache<K,V>, Function<K,V>
Implementations of this interface are expected to be thread-safe, and can be safely accessed by multiple concurrent threads.
When evaluated as a Function, a cache yields the same result as invoking
#getUnchecked.
Note that while this class is still annotated as Beta, the API is frozen from a
consumer's standpoint. In other words existing methods are all considered non-Beta and
won't be changed without going through an 18 month deprecation cycle; however new methods may be
added at any time.
| Modifier and Type | Method and Description |
|---|---|
V |
apply(K key)
Deprecated.
Provided to satisfy the
Function interface; use get(K) or
#getUnchecked instead. |
V |
get(K key)
Returns the value associated with
key in this cache, first loading that value if
necessary. |
getIfPresent, putV get(K key) throws ExecutionException
key in this cache, first loading that value if
necessary. No observable state associated with this cache is modified until loading completes.
If another call to get(K) or #getUnchecked is currently loading the value for
key, simply waits for that thread to finish and returns its loaded value. Note that
multiple threads can concurrently load values for distinct keys.
Caches loaded by a CacheLoader will call CacheLoader.load(K) to load new values
into the cache. Newly loaded values are added to the cache using
Cache.asMap().putIfAbsent after loading has completed; if another value was associated
with key while the new value was loading then a removal notification will be sent for
the new value.
If the cache loader associated with this cache is known not to throw checked
exceptions, then prefer #getUnchecked over this method.
ExecutionException - if a checked exception was thrown while loading the value. (ExecutionException is thrown even if
computation was interrupted by an InterruptedException.)UncheckedExecutionException - if an unchecked exception was thrown while loading the
valueExecutionError - if an error was thrown while loading the value@Deprecated V apply(K key)
Function interface; use get(K) or
#getUnchecked instead.apply in interface Function<K,V>UncheckedExecutionException - if an exception was thrown while loading the value. (As
described in the documentation for #getUnchecked, LoadingCache should be
used as a Function only with cache loaders that throw only unchecked exceptions.)Copyright © 2007-2024,Oracleand/or its affiliates.All Rights Reserved. Use is subject to license terms.