So verbergen Sie die Warnung „Static Final SerialVersionUID nicht deklarieren“ in Eclipse

Wenn Sie mit Eclipse arbeiten und die serialisierbare Schnittstelle in Ihrer eigenen Klasse implementieren, erhalten Sie höchstwahrscheinlich die folgende Fehlermeldung, wenn Sie die nicht deklariert haben serialVersionUID. Der Fehler ist:

Die serialisierbare Klasse XXXX deklariert kein statisches finales serialVersionUID-Feld vom Typ long

SerienversionuidWas ist serialVersionUID?

  • Ein Objekt in eine Datei schreiben?
  • Was ist eine transiente Variable?

Nachdem wir uns mit den Grundlagen der Serialisierung befasst haben, werden wir uns mit dem Konzept von serialVersionUID befassen. Standardmäßig jedes Mal, wenn ein Objekt serialisiert wird. Java ordnet ihm automatisch eine automatisch berechnete Versions-ID basierend auf der Objektstruktur zu. Und während der Deserialisierung sucht Java nach derselben Versions-ID und löst bei Nichtübereinstimmung eine Ausnahme aus. Warum führt Java diese Prüfung durch? Stellen Sie sich ein Szenario vor, in dem wir das Objekt serialisiert haben, aber später das Schlüsselwort „transient“ aus einer der Instanzvariablen entfernt haben und sich daher die Versions-ID ändert. Gehen wir jedoch davon aus, dass wir das Objekt nach dieser Änderung nicht serialisiert und anschließend deserialisiert haben. Woher weiß die Deserialisierungsklasse von dieser Änderung?

Eine Möglichkeit, wie Java diese Diskrepanz beheben kann, besteht darin, zu prüfen, ob die Versions-ID zwischen der deserialisierten und der serialisierten Klasse übereinstimmt. Diese serialVersionUID fungiert also wie eine Versionskontrolle für die Serializable-Klasse, indem sie die Kompatibilität des deserialisierten Objekts mit der aktuellen Definition derselben Klasse überprüft.

Warum sollte man sich darüber Sorgen machen, wenn Java sich darum kümmert? Wenn wir die Eclipse-IDE verwenden und nach der Implementierung von java.util.Serializable eine Warnung angezeigt wird: „Es wurde keine statische finale serialVersionUID vom Typ long deklariert.“ Wenn wir die Eclipse-IDE verwenden, wird durch Klicken auf diese Warnung eine serialVersionUID generiert. Und es gibt zwei Möglichkeiten: Verwenden Sie eine „Standard“- oder „generierte Versions-ID“. Laut Java-Experten sollten wir die Verwendung dieser Standardversions-ID vermeiden. Daher sollten wir immer die andere Option „generierte Versions-ID“ verwenden.

Eclipse-Konfiguration für serialVersionUID Warnung

Wenn Sie der Meinung sind, dass diese Warnung beim Codieren nicht angezeigt werden muss, können Sie sie dauerhaft unterdrücken, indem Sie die Standardkonfigurationen in Eclipse ändern. Diese Einstellungen können auf Projektebene oder Arbeitsbereichsebene konfiguriert werden. Sie können den Schritten folgen und die Einstellungen ändern.

  • Klicken Sie mit der rechten Maustaste auf das Projekt und klicken Sie auf das Eigenschaftenmenü.
  • Es erscheint ein Dialogfenster mit den Optionen zum Ändern der Einstellungen. Wählen Sie „Java Compiler“ und dann „Fehler/Ergebnisse“.
  • Ändern Sie den Wert des Feldes Abschnitt „Potenzielle Programmierprobleme“.ändern Serialisierbare Klasse ohne serialVersionUID: Zu Ignorieren
  • Das Gleiche ist in diesem Screenshot zu finden.

    Eclipse-serialisierbare-Warnung

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen