Obwohl in den Java-Dokumenten angegeben ist, dass schwache Referenzen in erster Linie zur Kanonisierung von Zuordnungen dienen, finden Sie im Internet viele , viele , viele Leute, die angeben, dass die WeakHashMap perfekt zum Speichern von Objektmetadaten während ihrer Lebensdauer geeignet ist. Es stört jedoch niemanden, ein verständliches UND angemessenes Beispiel zu geben.
Die Verwendung von WeakHashMap zum Hinzufügen von Objekten zu einigen Eigenschaften oder zum Speichern von Metadaten klingt für mich wie eine willkürliche Entscheidung, die auf dem Willen basiert, nur das verdammte Ding zu verwenden. Mit anderen Worten - ein schlechtes Design . Ich verstehe, dass es Situationen gibt, in denen Vererbung möglicherweise nicht verfügbar ist (Abschlussklassen, Schnittstellen), aber was ist mit der Komposition? Ich kann mir kein Beispiel vorstellen, bei dem Komposition keine Option wäre. Und sicherlich ein besseres, weil es sich auf ein etabliertes Prinzip stützt, anstatt auf eine "Sprach-Eigenart".
Gibt es also eine Situation, in der es besser wäre, schwache Referenzen anstelle einer einfachen Komposition zu verwenden? Wenn nicht, warum scheint es jeder im Internet falsch zu verstehen?