Java, преобразовать объект в softreference - PullRequest
3 голосов
/ 11 декабря 2011

Мне нужно поместить объект данных в мою карту weakhashmap, содержащую программные ссылки.Как мне преобразовать мой "Drawable" объект в softreference?

WeakHashMap <String, SoftReference<Drawable>> tempPulled = new WeakHashMap<String,     SoftReference<Drawable>>();
Drawable pulled = BitmapDrawable.createFromResourceStream(null, null, conn.getInputStream(), "galleryImage", options);
SoftReference<Drawable> sPulled;            
tempPulled.put(id, pulled);

tempPulled должен поставить "sPulled", softreference

Ответы [ 2 ]

3 голосов
/ 11 декабря 2011

Я думаю, это то, что вы ищете

SoftReference<Drawable> sPulled = new SoftReference<Drawable>(pulled);            

Но вы, вероятно, хотите добавить очередь для удаления SoftRefence с карты, если объект, на который есть ссылка, (или ваш кэш будет расти с ключамии пустые ссылки.

0 голосов
/ 11 декабря 2011

Взгляните на класс Guava's MapMaker , который позволяет указывать программные значения. Это проще, чем переопределить это самому.

...