Sehen Sie sich die Javadocs für WeakReference an. Zwei wichtige Dinge zu beachten: 1. Es ist geschützt, so dass Sie es erweitern können, und 2. Es überschreibt nicht Object.equals ()
Also, zwei Ansätze, um zu tun, was Sie wollen:
Erstens, der einfache Weg, benutze was @Jon Skeet gesagt hat.
Zweiter, eleganterer Weg. Hinweis: Dies funktioniert nur, wenn Sie auch nur die Liste hinzufügen:
%Vor%Sobald Sie diese Utility-Klassen haben, können Sie Objekte, die in Listen, Maps usw. gespeichert sind, mit jeder Referenzunterklasse umschließen - wie das obige WeakRefWithEquals-Beispiel. Wenn Sie nach einem Element suchen, müssen Sie HardReference umbrechen, falls die Sammlungsimplementierung dies tut.
%Vor%statt
%Vor%Tags und Links java list weak-references