Kiedy używałem Eclipse miał fajną funkcję generowania UID wersji szeregowej.
Ale co robić w IntelliJ?
Jak wybrać lub wygenerować identyczny UID wersji szeregowej w IntelliJ?
A co zrobić, gdy zmodyfikujesz starą klasę?
Jeśli nie określisz id
, jest generowany w czasie wykonywania ...
java
serialization
intellij-idea
nazar_art
źródło
źródło
serialVersionUID
jest generowana przez kompilator, jeśli nie jest określona. Określanie ma tę zaletę (i niebezpieczeństwo), że zachowuje identyczny identyfikator dla zmienionych wersji klas. Oznacza to, że plik z obiektem starej wersji zostanie odczytany (zdeserializowany) z nową wersją lub odwrotnie.Odpowiedzi:
Bez żadnych wtyczek:
Wystarczy włączyć podświetlanie: (Idea v.2016, 2017 i 2018, poprzednie wersje mogą mieć takie same lub podobne ustawienia)
Teraz, jeśli twoja klasa jest zaimplementowana
Serializable
, zobaczysz wyróżnienie i alt + Enter na nazwie klasy zaproponuje wygenerowanieprivate static final long serialVersionUID
.UPD: szybszy sposób na znalezienie tego ustawienia - możesz użyć klawisza skrótu
Ctrl+Shift+A
(znajdź akcję), wpiszSerializable class without 'serialVersionUID'
- pierwszy jest tym.źródło
Najłatwiejsza metoda:
Alt
+Enter
onIntelliJ podkreśli spację po
=
. umieść na nim kursor i naciśnijalt
+Enter
(Option
+Enter
na Macu). Pojawi się okienko z napisem „Losowa zmiana inicjatora serialVersionUID”. Po prostu naciśnij Enter, a wypełni to miejsce losowym długością.źródło
Zainstaluj wtyczkę GenerateSerialVersionUID
źródło
serialVersionUID
. Daje to rozwiązanie w przypadku, gdy zaktualizowałeś klasę podrzędną i musisz wygenerować nowy serialVersionUID dla tej klasy bez zmiany serialVersionUID klasy nadrzędnej (w przypadkach, gdy nie wprowadzono żadnych zmian w klasie nadrzędnej).IntelliJ IDEA Plugins / GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185
bardzo ładny, bardzo łatwy w montażu. możesz to zainstalować z menu wtyczek, wybrać zainstaluj z dysku, wybierz plik jar, który rozpakowałeś w folderze lib. restart, control + ins i wyskakuje, aby wygenerować szeregowy UID z menu. kocham to. :-)
źródło
w edytorze kodu otwórz klasę, dla której chcesz utworzyć identyfikator UID, kliknij prawym przyciskiem myszy -> Generuj -> SerialVersionUID. Aby to zadziałało, może być konieczne zainstalowanie wtyczki GenerateSerialVersionUID.
źródło