public class ObjectCache<T extends IdCachable> {
- private HashMap<Integer, WeakReference<T>> hashmap = new HashMap<>();
+ private final HashMap<Integer, WeakReference<T>> hashmap = new HashMap<>();
- private static HashSet<ObjectCache<?>> caches = new HashSet<>();
+ private static final HashSet<ObjectCache<? extends IdCachable>> caches = new HashSet<>();
protected ObjectCache() {
caches.add(this);
}
- public void put(T c) {
+ public T put(T c) {
hashmap.put(c.getId(), new WeakReference<T>(c));
+ return c;
}
public T get(int id) {
}
public static void clearAllCaches() {
- for (ObjectCache<?> objectCache : caches) {
+ for (ObjectCache<? extends IdCachable> objectCache : caches) {
objectCache.hashmap.clear();
}
}