Anche se i documenti Java specificano, tali riferimenti deboli sono principalmente per i mapping canonicalizing, troverai molti , molti , molti persone su Internet affermano che WeakHashMap è perfetto per archiviare i metadati dell'oggetto durante la sua vita. Tuttavia, nessuno si preoccupa di rendere un esempio E appropriato comprensibile
Usando WeakHashMap per aggiungere all'oggetto alcune proprietà o memorizzare i metadata su di me, come una decisione arbitraria basata sulla volontà di usare semplicemente quella dannata cosa. In altre parole: un cattivo design . Capisco, ci sono situazioni in cui l'ereditarietà potrebbe non essere disponibile (classi finali, interfacce), ma per quanto riguarda la composizione? Non riesco a pensare ad un esempio in cui la composizione non sarebbe un'opzione. E sicuramente uno migliore, perché si basa su un principio ben consolidato, invece che su una "stranezza linguistica".
Quindi, c'è una situazione, dove sarebbe meglio usare riferimenti deboli invece di una composizione semplice? In caso contrario, perché su Internet tutti sembrano sbagliarsi?