Ho una classe java che utilizza campi statici complessi che necessitano di operazioni speciali come close()
in modo che vengano puliti in modo sicuro da GC.Scarica campi statici
Per l'inizializzazione di campi statici utilizzo il blocco static
. Ma ora non so come scaricare il campo statico in modo sicuro, in modo da poter chiamare il metodo close()
prima che il campo venga ripulito da GC.
C'è un modo per scaricare un campo statico, simile al blocco di inizializzazione statico?
Avete considerato l'uso di finalize()? –
Ho. Ma da quello che so, finalizzo i lavori su oggetti di classe, non su campi statici di quella classe. Quindi, finalizzare non è un'opzione per me. –
Forse usando un campo statico che contiene il numero di riferimenti attivi agli oggetti di quella classe (incrementato nel costruttore, decrementato in finalize()) E chiamando close() o qualsiasi altro metodo di pulizia che hai su quelle statiche "complesse" quando finalizzato () incontra un conteggio ref di 0 dopo il decremento farebbe - non ho provato questo, però. –