J'ai quelque chose comme ceci:Comment connaître la valeur qui a été associée à une entrée supprimée dans une WeakHashMap
private Map<MyObj1, MyObj2> map = new WeakHashMap<MyObj1, MyObj2>();
... somewhere in the code ...
MyObj1 myObj1 = new MyObj1();
map.put(myObj1, new MyObj2();
...
myObj1 = null;
... somewhere else in a thread ... (I would like to pass to a checkThis(MyObj2) method the Value associated with the entry that was removed from the Map)
/* something like this maybe */
while (true) {
MyObj2 myObj2 = referenceQueue.remove().get();
checkThis(myObj2);
}
MyObj1
clé peut être retirée lorsque GC entre en jeu et il n'y a pas de référence forte à ce .
Je voudrais passer à checkThis(MyObj2)
l'objet de valeur carte particulière associée à la clé qui a été supprimé (vérification peut-être un ReferenceQueue
?)
Je ne peux pas comprendre comment mettre cela en code.
Je mis à jour ma réponse avec une solution possible si vous êtes à la recherche encore. –