SoftReferenceクラスを使うと、キャッシュのようなものを簡単に用意できます。大きなリソースを扱うBigObjectClassがあるとして、それをキャッシュするには、次のようなクラスを用意します。BigObjectClassは別途インスタンス生成が必要です。
public class BigObjectCache {
private static HashMap<String,SoftReference<BigObjectClass>> cache =
new HashMap<String,SoftReference<BigObjectClass>>();
public static BigObjectClass get(String key) {
SoftReferece<BigObjectClass> ref = cache.get(key);
if (ref != null) {
return ref.get();
} else {
return null;
}
}
public static void set(String key, BigObjectClass image) {
cache.put(key, new SoftReference<BigObjectClass>(image));
}
}