So generieren Sie die UID der Serienversion in Intellij

Lesezeit: 4 Minuten

Benutzer-Avatar
fangen23

Als ich benutzte Finsternis Es hatte eine nette Funktion, um die UID der Serienversion zu generieren.

Aber was tun in IntelliJ?

Wie wähle oder generiere ich eine identische Serienversions-UID in IntelliJ?

Und was tun, wenn Sie die alte Klasse ändern?

Wenn Sie die nicht angegeben haben idwird zur Laufzeit generiert…

  • Duplikat von stackoverflow.com/questions/12912287/…

    – Bruno Volpato

    4. Juli 2014 um 11:57 Uhr

  • @JFIB Die Klassenkonstante serialVersionUID wird vom Compiler generiert, wenn nicht angegeben. Die Angabe hat den Vorteil (und die Gefahr), dass die ID für geänderte Klassenversionen identisch bleibt. Das heißt, eine Datei mit einem Objekt der alten Version wird mit der neuen Version gelesen (deserialisiert) oder umgekehrt.

    – Joop Eggen

    4. Juli 2014 um 12:01 Uhr


  • @JFB Was ist eine serialVersionUID und warum sollte ich sie verwenden?

    – fangen23

    4. Juli 2014 um 12:02 Uhr

Benutzer-Avatar
Serhi Maksymchuk

Ohne Plugins:

Sie müssen nur die Hervorhebung aktivieren: (Idea v.2016, 2017 und 2018, frühere Versionen können dieselben oder ähnliche Einstellungen haben)

Datei -> Einstellungen -> Editor -> Inspektionen -> Java -> Serialisierungsprobleme -> Serialisierbare Klasse ohne ‘serialVersionUID’ – Flag setzen und auf ‘OK’ klicken. (Für Macs befinden sich die Einstellungen unter IntelliJ IDEA -> Einstellungen …)

Für Idea v. 2022.1 (Community und Ultimate) ist es auf:

Datei -> Einstellungen -> Editor -> Inspektionen -> JVM-Sprachen -> Serialisierbare Klasse ohne ‘serialVersionUID’ – Flag setzen und auf ‘OK’ klicken

Nun, wenn Ihre Klasse implementiert Serializablesehen Sie Hervorhebung und alt+Enter auf dem Klassennamen werden Sie auffordern, zu generieren private static final long serialVersionUID.

UPD: Ein schnellerer Weg, um diese Einstellung zu finden – Sie können Hotkey verwenden Ctrl+Shift+A (Aktion finden), eingeben Serializable class without 'serialVersionUID' – der erste ist der eine.

  • @SalilJunior Nicht wirklich. Die integrierte Fähigkeit zum Generieren einer serialVersionUID ist an Inspektionswarnungen gebunden. Sie stecken fest, wenn Sie die Inspektionswarnung nicht aktivieren, aber in einigen Fällen serialVersionUID generieren möchten.

    – Fabian Barney

    9. August 2017 um 9:55 Uhr

  • Diese Lösung funktioniert bei mir nicht, ich kann nur die Optionen sehen: Paketfähige Implementierung entfernen, Paketfähige Implementierung ersetzen, Test erstellen, Unterklasse erstellen und Paket privat machen. Die Klasse, die ich verwende, implementiert gleichzeitig Parcelable und Serializable. Irgendeine Idee?

    – Gonver

    16. Oktober 2017 um 12:54 Uhr


  • Haben Sie überprüft, ob das erforderliche Flag in den Einstellungen oben gesetzt ist? Getestet in v16 und v17 Idee, funktioniert gut. Überprüfen Sie auch zusätzliche Einstellungen für eine solche Inspektion, nachdem Sie im Einstellungsfenster (rechts) darauf geklickt haben.

    – Serhij Maksymchuk

    17. Oktober 2017 um 22:11 Uhr

  • Das kannte ich noch nicht und finde es sehr hilfreich.

    – Arefe

    5. November 2018 um 13:13 Uhr

Benutzer-Avatar
jeremysprofil

Einfachste Methode: Alt+Enter an

private static final long serialVersionUID = ;

IntelliJ wird das Leerzeichen nach dem unterstreichen =. Setzen Sie den Cursor darauf und drücken Sie alt+Enter (Option+Enter auf dem Mac). Sie erhalten ein Popover mit der Aufschrift „Randomly Change serialVersionUID Initializer“. Drücken Sie einfach die Eingabetaste, und es wird diesen Raum mit einer zufälligen Länge füllen.

  • Danke hat für mich in IntelliJ IDEA Community Edition Version 2018.3.3 funktioniert

    – Tarun

    18. Januar 2019 um 12:35 Uhr

  • Es wird auch in Java-Dokumenten empfohlen, nach Möglichkeit private Modifikatoren zu verwenden. docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/…

    – Ilja Lozinsky

    15. Mai 2019 um 6:20 Uhr

  • Bessere Antwort auf die obige.

    – Akin Okegbile

    13. September 2019 um 18:25 Uhr

  • es funktioniert, stellen Sie sicher, dass Sie am Ende ein Semikolon vor (alt+Enter) hinzufügen, z. B.: private static final long serialVersionUID =(alt+enter) ;

    – Nisarg Bhagavantanavar

    2. August 2021 um 7:37 Uhr


  • Das Hauptproblem, das ich hier sehe, ist, dass Sie alle diese Modifikatoren selbst eingeben müssen – private static final...

    – fangen23

    17. September 2021 um 16:40 Uhr

Benutzer-Avatar
Meo

Installieren GenerateSerialVersionUID Plugin

  • Warum ein Plugin installieren, wenn dies einfach möglich ist, wie unten von @Serhii gezeigt.

    – Tannenzapfen

    25. April 2017 um 8:34 Uhr


  • @shaz Ich bevorzuge es, wenn diese Inspektion deaktiviert ist, aber für einige Klassen ist es erforderlich, eine explizite serialVersionUID zu erhalten. Ich möchte keine ablenkende Inspektion für jede Klasse, während ich serialVersionUID nur für eine benötige.

    – Timofey

    2. Mai 2017 um 12:42 Uhr


  • Ich denke, das Plugin hilft beim Generieren von Werten für Unterklassen, bei denen die übergeordnete Klasse auch serialisierbar ist und eine enthält serialVersionUID. Dies kümmert sich um den Fall, wenn Sie die untergeordnete Klasse aktualisiert haben und eine neue serialVersionUID für diese Klasse generieren müssen, ohne die serialVersionUID der übergeordneten Klasse zu ändern (in Fällen, in denen keine Änderung an der übergeordneten Klasse vorgenommen wurde).

    – Kapad

    2. April 2018 um 13:15 Uhr

  • Dies kann zwar die Frage beantworten, es ist jedoch besser, hier die tatsächlichen Informationen bereitzustellen und nicht nur einen Link. Nur-Link-Antworten gelten nicht als gute Antworten und werden wahrscheinlich gelöscht.

    – Elixenid

    21. Juli 2018 um 6:25 Uhr

  • @EdCottrell Es müssen keine weiteren Informationen bereitgestellt werden. Entweder das Plugin verwenden oder nicht.

    – Mei

    21. Juli 2018 um 7:17 Uhr

IntelliJ IDEA-Plugins / GenerateSerialVersionUID
https://plugins.jetbrains.com/plugin/?idea&id=185

sehr schön, sehr einfach zu montieren. Sie können das über das Plugins-Menü installieren, von der Festplatte installieren auswählen und die JAR-Datei auswählen, die Sie im lib-Ordner entpackt haben. Neustart, Strg + Einfg, und es erscheint, um die serielle UID aus dem Menü zu generieren. Liebe es. 🙂

1354190cookie-checkSo generieren Sie die UID der Serienversion in Intellij

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy