Die Rolle von serialVersionUID:
Um die Versionskompatibilität während der Serialisierung aufrechtzuerhalten, behält die Deserialisierung weiterhin die Einzigartigkeit des Objekts bei, wenn die Version aktualisiert wird.
Es gibt zwei Generierungsmethoden:
Eine davon ist die Standardeinstellung 1L, zum Beispiel: private static final long serialVersionUID = 1L;
Eine besteht darin, ein 64-Bit-Hash-Feld basierend auf dem Klassennamen, dem Schnittstellennamen, der Mitgliedsmethode und dem Attribut usw. zu generieren, wie zum Beispiel:
private static final long serialVersionUID = xxxxL;
Wenn Ihre Klasse die Serializable-Schnittstelle implementiert und serialVersionUID nicht definiert ist, stellt Eclipse dies bereit
Die Eingabeaufforderungsfunktion fordert Sie auf, es zu definieren. Klicken Sie in Eclipse auf das Warnsymbol in der Klasse, und Eclipse wird es tun
Es werden automatisch zwei Generierungsmethoden angegeben. Wenn Sie es nicht definieren möchten, können Sie dies auch tun
Sie können es ausschalten und wie folgt einstellen:
Fenster ==> Einstellungen ==> Java ==> Compiler ==> Fehler/Warnungen ==>
Mögliche Programmierprobleme
Ändern Sie einfach die Warnung der Serializable-Klasse ohne serialVersionUID in „Ignorieren“.
Wenn Sie keine Kompatibilitätsprobleme berücksichtigen, deaktivieren Sie diese Funktion. Solange eine Kategorie die Serializable-Schnittstelle implementiert, gibt Eclipse eine Warnmeldung aus, wenn die SerialVersionUID nicht hinzugefügt wird Die Klasse Serializable ist abwärtskompatibel.
Wenn Ihre Klasse serialisiert und auf der Festplatte gespeichert ist, Sie aber später das Feld der Klasse ändern (hinzufügen, reduzieren oder umbenennen), wird beim Deserialisieren eine Ausnahme angezeigt, die zu Inkompatibilitätsproblemen führt.
Wenn jedoch die serialVersionUID identisch ist, werden verschiedene Felder mit dem Standardwert „type“ deserialisiert, wodurch Inkompatibilitätsprobleme vermieden werden können.