Когда я использовал Eclipse, у него была замечательная возможность генерировать UID серийной версии.
Но что делать в IntelliJ?
Как выбрать или сгенерировать идентичный UID серийной версии в IntelliJ?
А что делать при модификации старого класса?
Если вы не указали id
, он создается во время выполнения ...
java
serialization
intellij-idea
nazar_art
источник
источник
serialVersionUID
создается компилятором, если не указана. Указание имеет преимущество (и опасность) сохранения идентификатора идентичным для измененных версий класса. То есть файл с объектом старой версии будет прочитан (десериализован) с новой версией или наоборот.Ответы:
Без каких-либо плагинов:
Вам просто нужно включить подсветку: (Идея v.2016, 2017 и 2018, предыдущие версии могут иметь такие же или похожие настройки)
Теперь, если ваш класс реализует
Serializable
, вы увидите выделение и alt + Enter на имени класса предложит сгенерироватьprivate static final long serialVersionUID
.UPD: более быстрый способ найти эту настройку - вы можете использовать горячую клавишу
Ctrl+Shift+A
(действие найти), введитеSerializable class without 'serialVersionUID'
- первая первая.источник
Самый простой способ:
Alt
+Enter
наIntelliJ подчеркнет пробел после
=
. наведите на него курсор и нажмитеalt
+Enter
(Option
+Enter
на Mac). Вы получите всплывающее окно с надписью «Произвольно изменить инициализатор serialVersionUID». Просто нажмите Enter, и он заполнит это место произвольной длинной.источник
Установите плагин GenerateSerialVersionUID
источник
serialVersionUID
. Это позаботится о случае, когда вы обновили дочерний класс и вам нужно сгенерировать новый serialVersionUID для этого класса без изменения serialVersionUID родительского класса (в тех случаях, когда в родительский класс не было внесено никаких изменений).Плагины IntelliJ IDEA / GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185
очень красиво, очень просто установить. вы можете установить это из меню плагинов, выбрать установку с диска, выбрать файл jar, который вы распаковали в папке lib. перезапустите, control + ins, и он появится, чтобы сгенерировать серийный UID из меню. любить это. :-)
источник
с помощью в редакторе кода откройте класс, для которого вы хотите создать UID, щелкните правой кнопкой мыши -> Создать -> SerialVersionUID. Возможно, вам понадобится установить плагин GenerateSerialVersionUID, чтобы это работало.
источник