/ / come risolvere serialVersionUID non uguale eccezione nella stessa classe? - java, serialversionuid

come risolvere serialVersionUID eccezione non uguale nella stessa classe? - java, serialversionuid

java.io.InvalidClassException:
com.sungymobile.cache.resource.ResourceCacheLoader$ResourceCache;
local class incompatible: stream classdesc serialVersionUID = 6381106003702990139,
local class serialVersionUID = 3777451853403693248

risposte:

0 per risposta № 1

Sembra che tu abbia una classe serializzata, che non fornisce un parametro di versione seriale fissa. Devi fornire:

private static final long serialVersionUID = 0L;

Con qualsiasi valore lungo nella tua classe, che deve essere memorizzato nella cache. Grazie a Java Docs per l'interfaccia serializzabile:

Il runtime di serializzazione è associato a ciascunoclasse serializzabile un numero di versione, chiamato serialVersionUID, che viene utilizzato durante la deserializzazione per verificare che il mittente e il destinatario di un oggetto serializzato abbiano caricato classi per quell'oggetto compatibili rispetto alla serializzazione. Se il destinatario ha caricato una classe per l'oggetto che ha un serialVersionUID diverso da quello della classe del mittente corrispondente, la deserializzazione si tradurrà in un InvalidClassException. Una classe serializzabile può dichiarare esplicitamente il proprio serialVersionUID dichiarando un campo denominato "serialVersionUID" che deve essere statico, finale e di tipo long:

Questo valore è necessario per determinare, se l'istanza memorizzata nella cache è la stessa versione con la classe corrente.