Einführung in Serialversionuid
Wenn es um die Übertragung von Objekten während der Neuprogrammierung geht, werden wir die Serialisierungstechnologie durch Serialisierung übernehmen, um die Zustandsinformationen des Objekts in ein Formular zu konvertieren, das gespeichert oder übertragen werden kann. In Java können wir Objekte serialisieren, indem wir die serialisierbare Grenzfläche implementieren, und Serialversionuid ist eine unverzichtbare Rolle im Java -Serialisierungsmechanismus. Wir können die Versionskonsistenz überprüfen, indem wir die Serialversionuid der Klasse zur Laufzeit beurteilen. Bei der Deserialisierung vergleichen das JVM den Serialversionuid im bestandenen Byte -Strom mit dem Serialversionuid der lokalen entsprechenden Entität (Klasse). Wenn dasselbe als konsistent angesehen wird, kann es deserialisiert werden, ansonsten tritt eine Ausnahme mit inkonsistenten Serialisierungsversionen auf.
Wenn wir die Intellij -Idee verwenden, um Klassen zu schreiben und eine serialisierbare (serialisierte) Schnittstelle zu implementieren, können wir auf ein solches Problem stoßen, dh:
Der Serialversionuid kann nicht automatisch generiert werden .
serialVersionUID ist ein weiteres sehr wichtiges Feld, da der Serialisierungsmechanismus von Java serialVersionUID der Klasse zur Laufzeit überprüft, um die Versionskonsistenz zu überprüfen. Bei der Deserialisierung vergleichen das JVM serialVersionUID im bestandenen Byte -Strom mit serialVersionUID der lokalen entsprechenden Entität (Klasse). Wenn dasselbe als konsistent angesehen wird, kann es deserialisiert werden, ansonsten tritt eine Ausnahme mit inkonsistenten Serialisierungsversionen auf.
Im Allgemeinen gibt es zwei Möglichkeiten, serialVersionUID zu definieren, nämlich:
1L , insbesondere private static final long serialVersionUID = 1L;64 -Bit -Hash -Feld basierend auf dem Klassennamen, dem Schnittstellennamen, den Mitgliedsmethoden und -attributen, z. B. private static final long serialVersionUID = XXXL;Es gibt zwei Hauptzwecke für die Serialisierung von Java -Klassen, nämlich:
Schauen wir uns hier an, wie Sie die Intellij -Idee verwenden, um automatisch serialVersionUID zu generieren.
Schritt 1: Installieren Sie das Generaterialversionuid -Plugin
Klicken Preferences wie in der obigen Abbildung angezeigt, um die folgende Schnittstelle einzugeben:
Wählen Sie hier Plugins aus und suchen Sie nach GenerateSerialVersionUID . Wenn Sie dieses Plugin nicht finden, können Sie Search in repositories klicken, um zu suchen:
Klicken Sie wie im obigen Bild angezeigt, um zu install , um dieses Plug-In zu installieren.
Schritt 2: Stellen Sie die Inspektionsfunktion fest
Wie in der obigen Abbildung gezeigt, geben Sie Default Settings auf der Seite Inspections Einstellungen" ein, und überprüfen Sie Serializable class without 'serialVersionUID' , und Sie können auch die Severity festlegen, wie z. B. Warning , Error usw., welche standardmäßig Warning standardmäßig. Es wird auch empfohlen, Warning auszuwählen.
Erstellen Sie wie in der obigen Abbildung eine Klasse und implementieren Sie die Serializable Schnittstelle. Drücken Sie dann alt + Enter , um eine Eingabeaufforderung zu erhalten, und wählen Sie SerialVersionUID aus:
Wie in der Abbildung oben gezeigt, haben wir offensichtlich die Intellij -Idee verwendet, um automatisch serialVersionUID zu generieren!
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.