public abstract class CachingReference<E> extends Object
Object that it holds and handle the renewal of this object upon expiration.
Greatly inspired by the CachedData sample provided in the javadoc
of ReentrantReadWriteLock.
Object is created implementing the newObject() method.
Sample to get an InetAddress refreshed against a DNS every 10 seconds:
CachingReference myRemoteServerAddress = new CachingReference<InetAddress>(10, TimeUnit.SECONDS) {
protected InetAddress newObject() {
try {
return InetAddress.getByName(myRemoteServerHostname);
} catch () {
throw new RuntimeException("Exception resolving '" + myRemoteServerHostname + "'", e);
}
}
}
| Constructor and Description |
|---|
CachingReference(long timeToLiveInNanos) |
CachingReference(long timeToLive,
TimeUnit timeToLiveUnit) |
| Modifier and Type | Method and Description |
|---|---|
E |
get() |
protected abstract E |
newObject() |
void |
purge()
Purge the cached reference so that a new object will be created for the next
get() |
String |
toString() |
Copyright © 2016. All Rights Reserved.