Во-первых, не использовать Java Сериализация . Единственный красный выделенный текст в Правилах безопасного кодирования для Java SE читает
Примечание: десериализация ненадежных данных по своей природе опасна и ее следует избегать.
Чтобы убедиться, что идентификатор совпадает, определите serialVersionUID
в классе.
@Serial private static final long serialVersionUID = 1L;
(@Serial
начиная с текущей версии Java, Java SE 14.)
Чтобы найти идентификатор, сначала ищется serialVersionUID
, а если его нет, он рассчитывается, как указано в документе (ха sh из открытых и c методов и полей класса) .