Роль SerialVersionUID:
Чтобы обеспечить совместимость версий во время сериализации, десериализация по-прежнему сохраняет уникальность объекта при обновлении версии.
Существует два метода генерации:
Одним из них является значение по умолчанию 1L, например: Private static Final Long SerialVersionUID = 1L;
Один из них — создать 64-битное хеш-поле на основе имени класса, имени интерфейса, метода и атрибута-члена и т. д., например:
частный статический окончательный длинный сериалVersionUID = xxxxL;
Когда ваш класс реализует интерфейс Serializable, если SerialVersionUID не определен, Eclipse предоставит это
Функция подсказки подскажет вам это определить. В Eclipse щелкните значок предупреждения в классе, и Eclipse
Автоматически предоставляются два метода генерации. Если вы не хотите это определять, вы также можете
Вы можете отключить его и настроить следующим образом:
Окно ==> Настройки ==> Java ==> Компилятор ==> Ошибка/Предупреждения ==>
Возможные проблемы с программированием
Просто измените предупреждение класса Serializable без SerialVersionUID, чтобы игнорировать его.
Если вы не учитываете проблемы совместимости, отключите ее, но полезно иметь эту функцию. Пока какая-либо категория реализует интерфейс Serializable, Eclipse выдаст вам предупреждение, если SerialVersionUID не добавлен. Этот SerialVersionUID предназначен для The. Класс Serializable обратно совместим.
Если ваш класс сериализован и сохранен на жестком диске, но позже вы измените поле класса (добавите, уменьшите или переименуете), при десериализации появится исключение, что приведет к проблемам несовместимости.
Но если SerialVersionUID один и тот же, он будет десериализовать разные поля со значением типа по умолчанию, что позволит избежать проблем несовместимости.