java.lang.ref.Reference s via CacheValues.
To use, instantiate a subclass which implements the createInstance() method,
and call get() with the key and the data. The get() call will use the data
only if it needs to call createInstance(), otherwise the data is ignored.
When caching instances while the CacheValue "strength" is SOFT,
the Java runtime can later release these instances once they are not used any more at all.
If such an instance is then requested again,
the getInstance() method will call createInstance() again and reset the CacheValue.
The cache holds on to its map of keys to CacheValues forever.
A value can be null if createInstance() returns null. In this case, it must do so consistently for the same key and data.
| Modifier and Type | Field and Description |
|---|---|
| private ConcurrentHashMap |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public final V | getInstance(K
Cache lookup key for the requested instance key, D Data for createInstance() if the instance is not already cached data)Implements abstract com. |
| map | back to summary |
|---|---|
| private ConcurrentHashMap<K, Object> map | |
| SoftCache | back to summary |
|---|---|
| public SoftCache() | |
| getInstance | back to summary |
|---|---|
| public final V getInstance(K key, D data) Implements abstract com. Doc from com. Retrieves an instance from the cache. Calls createInstance(key, data) if the cache does not already contain an instance with this key. Ignores data if the cache already contains an instance with this key.
| |