Ho una variabile HashMap<MyClass,ArrayList<WeakReference<MyObject>>>
.Posso confrontare le variabili WeakReference in java?
Eventhough weakrefences viene pulito dall'hashmap, voglio anche essere in grado di rimuovere manualmente "MyObject" da HashMap. Questo è un oggetto listener centrale.
quando aggiungo elementi alla arraylist che è collegato al valore della chiave hashmap principale, io uso .add(new WeakReference<MyObject>(owner))
quando voglio per rimuovere "sé" da un luogo esterno, io mando il "proprietario" come il parametro che è il vero oggetto. Quindi, come posso rimuovere questo oggetto manualmente dalla mia hashmap? Posso interrogare con un nuovo WeakReference generato dal parametro del proprietario in arrivo? Il vecchio "new WeakReference<MyObject>(owner)"
e il nuovo "new WeakReference<MyObject>(owner)"
saranno uguali? Quindi potrei rimuoverlo dall'hashmap.
Qual è la chiave utilizzata per memorizzare i riferimenti deboli? Usa lo stesso tasto per rimuovere l'istanza di riferimento debole dalla mappa. –
Non sta chiamando 'add' sulla mappa ma sulla' Lista'. –
@NarendraPathai key è un enum che definisce il tipo di listener. Non riesco a rimuovere la chiave principale. devo rimuovere il listener da ArrayList. Supponiamo quindi che ci siano molte chiavi come "A_CHANGED, B_CHANGED". A_CHANGED può avere un numero illimitato di oggetti diversi che ascoltano l'evento A_CHANGED. Quindi non posso rimuovere tutti gli oggetti da A_CHANGED. – frankish