Wie entferne ich eine weakReference aus einer Liste?

7

Ich habe eine Liste von weakReferences auf Objekte in Java. Wie schreibe ich eine Methode, die die reale Objektinstanz erhält und ihre schwache Referenz aus dieser Liste entfernt?

danke.

    
Adibe7 09.06.2011, 16:19
quelle

2 Antworten

34

Es ist nicht ganz klar, was Sie meinen, aber ich denke, dass Sie können wollen:

%Vor%     
Jon Skeet 09.06.2011, 16:25
quelle
6

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%     
Dilum Ranatunga 09.06.2011 16:43
quelle

Tags und Links