Se si dispone di un'istanza di una classe memorizzata in una sessione, è necessario renderla serializzabile. Questa classe ha una variabile statica, verrà serializzata in ogni istanza memorizzata?come funziona serializzabile in java?
La variabile statica è un riferimento a una cache che contiene molti dati sullo sfondo. Tutti questi dati saranno serializzati? Se è così, sembra preferibile rendere questa variabile transitoria e recuperare l'istanza della cache ogni volta che l'istanza viene ripristinata. Forse non memorizzare l'istanza della cache nella classe.
Il costruttore verrà eseguito quando una classe viene ripristinata da uno stato serializzato? se no c'è qualche altro metodo che posso usare per re-instare una variabile transitoria?
Il costruttore no-arg della superclasse non serializzabile più derivata viene eseguito, ma non i costruttori delle classi serializzate. 'readObject' (o' readObjectNoData' può sostituire la deserializzazione di default (consultare i documenti API) –
@Tom, sostituire? Quindi se implemento uno di questi metodi devo gestire tutta la serializzazione da solo? – KTrum
Trumstedt Generalmente si fornire (non eseguire l'override) 'readObject'. La prima cosa che il metodo dovrebbe fare è chiamare' defaultReadObject' o 'readFields'. –